12 Commandes utiles pour filtrer le texte pour des opérations de fichiers efficaces dans Linux

12 Commandes utiles pour filtrer le texte pour des opérations de fichiers efficaces dans Linux

Dans cet article, nous passerons en revue un certain nombre d'outils de ligne de commande qui agissent comme des filtres dans Linux. UN filtre est un programme qui lit l'entrée standard, effectue une opération sur elle et écrit les résultats de la sortie standard.

Pour cette raison, il peut être utilisé pour traiter les informations de manière puissante telles que la restructuration de sortie pour générer des rapports utiles, la modification du texte dans les fichiers et de nombreuses autres tâches d'administration système.

Cela dit, ci-dessous sont quelques-uns des filtres de fichiers ou de texte utiles dans Linux.

1. Commande awk

Awk est un langage de balayage et de traitement de modèle remarquable, il peut être utilisé pour créer des filtres utiles dans Linux. Vous pouvez commencer à l'utiliser en lisant notre série awk partie 1 à la partie 13.

De plus, lisez également le awk Page de l'homme pour plus d'informations et d'options d'utilisation:

$ man awk 

2. Commande SED

sed est un puissant éditeur de flux pour filtrer et transformer le texte. Nous avons déjà écrit deux articles utiles sur SED, que vous pouvez le parcourir ici:

  1. Comment utiliser la commande GNU 'SED' pour créer, modifier et manipuler des fichiers dans Linux
  2. 15 Conseils et astuces de commande «SED» utiles pour les tâches quotidiennes d'administration du système Linux

La page SED Man a ajouté des options de contrôle et des instructions:

$ man sed 

3. Commandes grep, egrep, fgrep, rgrep

Ces filtres de sortie des lignes correspondant à un motif donné. Ils lisent les lignes à partir d'un fichier ou d'une entrée standard, et impriment toutes les lignes correspondantes par défaut par défaut vers la sortie standard.

Note: Le programme principal est Grep, les variations sont tout simplement les mêmes que l'utilisation d'options GREP spécifiques que ci-dessous (et elles sont toujours utilisées pour la compatibilité en arrière):

$ egrep = grep -e $ fgrep = grep -f $ rgrep = grep -r 

Vous trouverez ci-dessous quelques commandes GREP de base:

[Protégé par e-mail] ~ $ grep "aaronkilik" / etc / passwd Aaronkilik: X: 1001: 1001 :: / Home / Aaronkilik: [Protégé par e-mail] ~ $ chat / etc / passwd | grep "aronkilik" Aaronkilik: X: 1001: 1001 :: / Home / Aaronkilik: 

Vous pouvez en savoir plus sur la différence entre Grep, Egrep et Fgrep dans Linux?.

4. commande de tête

diriger est utilisé pour afficher les premières parties d'un fichier, il publie le premier dix lignes par défaut. Vous pouvez utiliser le -n NUM Flag pour spécifier le nombre de lignes à afficher:

[Protégé par e-mail] ~ $ tête / var / log / auth.enregistrer 2 janvier 10:45:01 Tecmint Cron [3383]: PAM_UNIX (Cron: Session): Session ouverte pour l'utilisateur Root par (UID = 0) Jan 2 10:45:01 Tecmint Cron [3383]: PAM_UNIX (Cron: Session) : Session fermée pour la racine de l'utilisateur 2 janvier 10:51:34 Tecmint Sudo: Tecmint: tty = inconnu; Pwd = / home / tecmint; User = root; Commande = / usr / lib / linuxmint / mintUpdate / checkapt.Py 2 janvier 10:51:34 Tecmint sudo: pam_unix (sudo: session): la session ouverte pour l'utilisateur root par (uid = 0) 2 janvier 10:51:39 Tecmint sudo: pam_unix (sudo: session): session fermée pour l'utilisateur Root Jan 2 10:55:01 Tecmint Cron [4099]: PAM_UNIX (Cron: Session): Session ouverte pour l'utilisateur Root par (UID = 0) Jan 2 10:55:01 Tecmint Cron [4099]: PAM_UNIX (Cron: Session ): Session fermée pour la racine de l'utilisateur 2 11:05:01 Tecmint Cron [4138]: PAM_UNIX (Cron: Session): Session ouverte pour la racine de l'utilisateur par (UID = 0) Jan 2 11:05:01 Tecmint Cron [4138] : PAM_UNIX (CRON: SESSION): Session fermée pour la racine de l'utilisateur 2 janvier 11:09:01 Tecmint Cron [4146]: PAM_UNIX (Cron: Session): Session ouverte pour la racine de l'utilisateur par (UID = 0) [Protégé par e-mail] ~ $ tête -N 5 / var / log / auth.enregistrer 2 janvier 10:45:01 Tecmint Cron [3383]: PAM_UNIX (Cron: Session): Session ouverte pour l'utilisateur Root par (UID = 0) Jan 2 10:45:01 Tecmint Cron [3383]: PAM_UNIX (Cron: Session) : Session fermée pour la racine de l'utilisateur 2 janvier 10:51:34 Tecmint Sudo: Tecmint: tty = inconnu; Pwd = / home / tecmint; User = root; Commande = / usr / lib / linuxmint / mintUpdate / checkapt.Py 2 janvier 10:51:34 Tecmint sudo: pam_unix (sudo: session): la session ouverte pour l'utilisateur root par (uid = 0) 2 janvier 10:51:39 Tecmint sudo: pam_unix (sudo: session): session fermée pour l'utilisateur racine 

Apprenez à utiliser la commande Head avec des commandes de queue et de chat pour une utilisation efficace dans Linux.

5. commande de queue

queue Sorte les dernières parties (dix lignes par défaut) d'un fichier. Utilisez le -n Switch num pour spécifier le nombre de lignes à afficher.

La commande ci-dessous sortira le dernier 5 lignes du fichier spécifié:

[Protégé par e-mail] ~ $ Tail -N 5 / Var / Log / Auth.enregistrer 6 janvier 13:01:27 Tecmint Sshd [1269]: serveur écoute sur 0.0.0.0 Port 22. 6 janvier 13:01:27 Tecmint SSHD [1269]: Écoute du serveur sur :: Port 22. 6 janvier 13:01:27 Tecmint Sshd [1269]: reçue Sigup; redémarrage. 6 janvier 13:01:27 Tecmint Sshd [1269]: serveur écoute sur 0.0.0.0 Port 22. 6 janvier 13:01:27 Tecmint SSHD [1269]: Écoute du serveur sur :: Port 22. 

En outre, queue a une option spéciale -F pour regarder les modifications d'un fichier en temps réel (en particulier les fichiers journaux).

La commande suivante vous permettra de surveiller les modifications du fichier spécifié:

[Protégé par e-mail] ~ $ Tail -f / var / log / auth.enregistrer 6 janvier 12:58:01 Tecmint SSHD [1269]: Serveur Écoute sur :: Port 22. 6 janvier 12:58:11 Tecmint Sshd [1269]: reçue Sigup; redémarrage. 6 janvier 12:58:12 Tecmint Sshd [1269]: serveur écoute sur 0.0.0.0 Port 22. 6 janvier 12:58:12 Tecmint SSHD [1269]: Écoute du serveur sur :: Port 22. 6 janvier 13:01:27 Tecmint Sshd [1269]: reçue Sigup; redémarrage. 6 janvier 13:01:27 Tecmint Sshd [1269]: serveur écoute sur 0.0.0.0 Port 22. 6 janvier 13:01:27 Tecmint SSHD [1269]: Écoute du serveur sur :: Port 22. 6 janvier 13:01:27 Tecmint Sshd [1269]: reçue Sigup; redémarrage. 6 janvier 13:01:27 Tecmint Sshd [1269]: serveur écoute sur 0.0.0.0 Port 22. 6 janvier 13:01:27 Tecmint SSHD [1269]: Écoute du serveur sur :: Port 22. 

Lisez le queue Page de l'homme pour une liste complète des options et des instructions d'utilisation:

$ mande 

6. Trier la commande

trier est utilisé pour trier les lignes d'un fichier texte ou à partir d'entrée standard.

Vous trouverez ci-dessous le contenu d'un fichier nommé domaines.liste:

[Protégé par e-mail] ~ $ domaines de chat.liste Tecmint.com Tecmint.comtés com.Tecmint.comtés com.Tecmint.com Linuxsay.com Linuxsay.com windowsmint.com windowsmint.com 

Vous pouvez exécuter une commande de tri simple pour trier le contenu du fichier comme ainsi:

[Protégé par e-mail] ~ $ trier les domaines.liste linuxsay.com Linuxsay.comtés com.Tecmint.comtés com.Tecmint.com Tecmint.com Tecmint.com windowsmint.com windowsmint.com 

Vous pouvez utiliser trier Commande à bien des égards, passez par certains des articles utiles sur la commande de tri comme suit:

  1. 14 Exemples utiles de la commande Linux 'Sort' - Partie 1
  2. 7 Exemples de commande «tri» Linux intéressants - Partie 2
  3. Comment trouver et trier les fichiers en fonction de la date et de l'heure de modification
  4. Comment trier la sortie de la commande «ls» par la dernière date et heure modifiées

7. Commande UNIQ

uniq La commande est utilisée pour signaler ou omettre des lignes répétées, il filtre les lignes de l'entrée standard et écrit le résultat de la sortie standard.

Après avoir coulé trier Sur un flux d'entrée, vous pouvez supprimer les lignes répétées avec uniq Comme dans l'exemple ci-dessous.

Pour indiquer le nombre d'occurrences d'une ligne, utilisez le -c option et ignorer les différences en cas de comparaison en incluant le -je option:

[Protégé par e-mail] ~ $ domaines de chat.liste Tecmint.com Tecmint.comtés com.Tecmint.comtés com.Tecmint.com Linuxsay.com Linuxsay.com windowsmint.com [Protégé par e-mail] ~ $ trier les domaines.Liste | Uniq -C 2 Linuxsay.Com 2 News.Tecmint.com 2 tecmint.com 1 windowsmint.com 

Lisez le uniq Page de l'homme pour plus d'informations sur l'utilisation et les drapeaux:

$ man uniq 

8. Commande FMT

fmt Formateur de texte optimal simple, il reformates les paragraphes dans le fichier spécifié et imprime les résultats à la sortie standard.

Ce qui suit est le contenu extrait du fichier liste de domaine.SMS:

1.Tecmint.com 2.nouvelles.Tecmint.com 3.linuxsay.com 4.Windowsmint.com 

Pour reformater le contenu ci-dessus sur une liste standard, exécutez la commande suivante avec -w L'interrupteur est utilisé pour définir la largeur de ligne maximale:

[Protégé par e-mail] ~ $ liste de domaine CAT.SMS 1.Tecmint.com 2.nouvelles.Tecmint.com 3.linuxsay.com 4.Windowsmint.com [Protégé par e-mail] ~ $ Liste de domaine FMT -W 1.SMS 1.Tecmint.com 2.nouvelles.Tecmint.com 3.linuxsay.com 4.Windowsmint.com 

9. Commande PR

RP La commande convertit les fichiers texte ou les entrées standard pour l'impression. Par exemple sur Debian Systèmes, vous pouvez répertorier tous les packages installés comme suit:

$ dpkg -l 

Pour organiser la liste en pages et colonnes prêtes pour l'impression, émettez la commande suivante.

[Protégé par e-mail] ~ $ dpkg -l | Pr - Colonnes 3 -L 20 2017-01-06 13:19 Page 1 souhaité = Unknown / Installer II ADDUSER II APG | Status = not / inst / conf- ii adwaitaa-icon-theme ii appinstall-data | / err?= (Aucun) / Reinst-R II Adwaitaa-icon-theme- II Apparmor || / Name II ALSA-Base II APT +++ - ==================. II ALSA-UTILS II APT-CLONE II CONTEMENTSERVICE II ANACRON II APT-TRANSPORT-HTTPS II ACL II APACHE2 II APT-UTILS II ACPI-Support II Apache2-Bin II APT-XAPIAN-IDEX II ACPID II APACHE2-DATA II APTDAEME II Addx -APT-Key II Apache2-Utils II aptdaemon-data 2017-01-06 13:19 Page 2 II APTITTION II AVAHI-DAEMON II BIND9-HOST II APTITUDE-COMMON II AVAHI-UTILS II BINFMT-Support II APTURL II AVIEW II BINUTILS II APTURL-COMMON II BANSHEE II BISON II ARCHDETTECT-DEB II BAOBAB II BLT II ASPELL II FILES DE BASE II BLUEBERRA II ASPELL-EN II BASE-PASSWD II BLUETOOTH II AT-SPI2-CORE II BASH II BLUEZ II ATTR II BASH-complétion Bash-Completion AT-SPI2-Core II BASH II BLUEZ II ATTR II BASH-complétion Bash-Completion AT-SPI2-Core II BASH II BLUEZ II ATTR II BASH-complétion Bash-Completion AT-SPI2-Core II BASH II BLUEZ II ATTR II BASH-complétion Bash-Completion II BLUEZ-CUPS II AVAHI-AUTOIPD II BC II BLUEZ-OBEXD… 

Les drapeaux utilisés ici sont:

  1. --colonne définit le nombre de colonnes créées dans la sortie.
  2. -l Spécifie la longueur de la page (par défaut est 66 lignes).

dix. commande de TR

Cet outil traduit ou supprime les caractères des entrées standard et écrit les résultats à la sortie standard.

La syntaxe pour l'utilisation tr est comme suit:

SET des options $ tr Set1 set2 

Jetez un œil aux exemples ci-dessous, dans la première commande, set1 ([: supérieur:]) représente le cas des caractères d'entrée (tous les caisses en haut).

Alors set2 ([: inférieur:]) représente le cas dans lequel les caractères résultants seront. C'est la même chose dans le deuxième exemple et la séquence d'échappement \ n signifie imprimer la sortie sur une nouvelle ligne:

[Protégé par e-mail] ~ $ Echo "www.Tecmint.Com "| tr [: supérieur:] [: inférieur:] www.Tecmint.com [Protégé par e-mail] ~ $ Echo "News.Tecmint.com "| tr [: inférieur:] [: supérieur:] NOUVELLES.Tecmint.Com 

11. Plus de commandement

plus La commande est un filtre de lecture de fichiers utile créé essentiellement pour la visualisation du certificat. Il affiche du contenu de fichier dans une page comme le format, où les utilisateurs peuvent appuyer sur [Entrer] Pour voir plus d'informations.

Vous pouvez l'utiliser pour afficher des fichiers volumineux comme tel:

[Protégé par e-mail] ~ $ DMESG | plus [0.000000] Initialisation de CGroup subsys CPUSET [0.000000] Initialisation du CGROUP subsys CPU [0.000000] Initialisation de CGroup subsys CPUACCT [0.000000] Version Linux 4.4.0-21-Generic ([Protégé par e-mail]) (Version GCC 5.3.1 20160413 (Ubuntu 5.3.1-14UBUNTU2)) # 37-UBUNTU SMP MON 18 avril 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37 génériques 4.4.6) [0.000000] ligne de commande: boot_image = / boot / vmLinUz-4.4.0-21 générique Root = UUID = BB29DDA3-BDAA-4B39-86CF-4A6DC9634A1B RO Splash Splash VT.Handoff = 7 [0.000000] CPU pris en charge du noyau: [0.000000] Intel authenineintel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86 / fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] x86 / fpu: support de fonction XSAVE 0x01: «x87 Registres à points flottants» [0.000000] x86 / FPU: Prise en charge de la fonction XSAVE 0x02: «SSE Registres» [0.000000] x86 / FPU: Support Fonction XSAVE 0x04: «AVX Registres» [0.000000] x86 / FPU: Caractéristiques XState activées 0x7, la taille du contexte est de 832 octets, en utilisant le format «standard». [0.000000] x86 / FPU: Utilisation de commutateurs de contexte FPU «Eager». [0.000000] E820: Carte RAM physique fournie par BIOS: [0.000000] BIOS-E820: [MEM 0x00000000000000-0x000000000009d3ff] utilisable [0.000000] BIOS-E820: [MEM 0x000000000009d400-0x000000000009ffff] Réservé [0.000000] BIOS-E820: [mem 0x00000000000e0000-0x00000000000fffff] réservé [0.000000] BIOS-E820: [MEM 0x00000000100000-0x000000AA56AFFFF] utilisable [0.000000] BIOS-E820: [MEM 0x00000000A56B0000-0X00000000AA5FFFF] Réservé [0.000000] BIOS-E820: [MEM 0x00000000A5EB0000-0X0000000000AAAABEFFF] --Plus-- 

12. Moins de commande

moins est l'opposé de plus Commande ci-dessus mais il offre des fonctionnalités supplémentaires et c'est un peu plus rapide avec des fichiers volumineux.

Utilisez-le de la même manière que plus:

[Protégé par e-mail] ~ $ DMESG | moins [0.000000] Initialisation de CGroup subsys CPUSET [0.000000] Initialisation du CGROUP subsys CPU [0.000000] Initialisation de CGroup subsys CPUACCT [0.000000] Version Linux 4.4.0-21-Generic ([Protégé par e-mail]) (Version GCC 5.3.1 20160413 (Ubuntu 5.3.1-14UBUNTU2)) # 37-UBUNTU SMP MON 18 avril 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37 génériques 4.4.6) [0.000000] ligne de commande: boot_image = / boot / vmLinUz-4.4.0-21 générique Root = UUID = BB29DDA3-BDAA-4B39-86CF-4A6DC9634A1B RO Splash Splash VT.Handoff = 7 [0.000000] CPU pris en charge du noyau: [0.000000] Intel authenineintel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86 / fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] x86 / fpu: support de fonction XSAVE 0x01: «x87 Registres à points flottants» [0.000000] x86 / FPU: Prise en charge de la fonction XSAVE 0x02: «SSE Registres» [0.000000] x86 / FPU: Support Fonction XSAVE 0x04: «AVX Registres» [0.000000] x86 / FPU: Caractéristiques XState activées 0x7, la taille du contexte est de 832 octets, en utilisant le format «standard». [0.000000] x86 / FPU: Utilisation de commutateurs de contexte FPU «Eager». [0.000000] E820: Carte RAM physique fournie par BIOS: [0.000000] BIOS-E820: [MEM 0x00000000000000-0x000000000009d3ff] utilisable [0.000000] BIOS-E820: [MEM 0x000000000009d400-0x000000000009ffff] Réservé [0.000000] BIOS-E820: [mem 0x00000000000e0000-0x00000000000fffff] réservé [0.000000] BIOS-E820: [MEM 0x00000000100000-0x000000AA56AFFFF] utilisable [0.000000] BIOS-E820: [MEM 0x00000000A56B0000-0X00000000AA5FFFF] Réservé [0.000000] BIOS-E820: [MEM 0x00000000A5EB0000-0X0000000000AAAABEFFF] utilisable: 

Découvrez pourquoi «moins» est plus rapide que «plus» de commande pour la navigation de fichiers efficace dans Linux.

C'est tout pour l'instant, faites-nous part de tous les outils de ligne de commande utiles non mentionnés ici, qui agissent comme un filtre de texte dans Linux via la section des commentaires ci-dessous.