Jessaie de mieux apprendre la ligne de commande et je me demande quelle serait la différence entre ces deux commandes.

grep -c ^b example 

et

grep ^b example| cat –n 

Commentaires

  • Bienvenue dans Unix et Linux . Si vous voulez apprendre la ligne de commande, le meilleur moyen est de faire des essais en exécutant les commandes vous-même en utilisant différents fichiers dentrée. Les questions doivent montrer un effort de recherche afin que je ' d vous conseille de consulter les pages de manuel pertinentes pour connaître le but des différentes options. Les pages de manuel ne sont ' que les plus lisibles si vous ' nouveau sous Unix, donc si vous avez des problèmes pour le comprendre, vous pouvez modifier cette question pour en faire plus spécifique (et utile). Consultez la section Comment demander et nhésitez pas à participer à la visite .
  • (-1) Pas même les mêmes commandes. Deux commandes non liées.
  • Avez-vous essayé dexécuter les commandes?

Réponse

Eh bien , selon du manuel , grep:

recherche PATTERN dans chaque FICHIER . Par défaut, grep imprime les lignes correspondantes.

et avec -c flag:

-c, --count 

Supprimer la sortie normale; à la place, affichez un nombre de lignes correspondantes pour chaque fichier dentrée.

Donc, grep -c ^b example imprime le nombre (nombre) de lignes correspondant au motif, tandis que grep ^b example imprime les lignes elles-mêmes.

Comme pour cat, il « est décrit à

concaténer les fichiers et imprimer sur le sortie standard

et ce que fait lindicateur -n est de:

-n, --number 

numéroter toutes les lignes de sortie

Compte tenu du tube et non noms de fichier, cat lit à partir du tube, donc la sortie est la sortie de grep, avec les numéros de ligne ajoutés. Par conséquent grep ^b example| cat –n imprime toutes les lignes correspondantes, numérotées.


Ceci est différent de grep -n ^b example, où grep ajoute le li numéros des correspondances. grep connaît les numéros de ligne du fichier dorigine, tandis que cat ne voit que la sortie de grep et numérote les lignes en conséquence.

Donc, étant donné le fichier dentrée

$ cat example bar foo basf 

Nous avons:

$ grep -c ^b example 2 $ grep ^b example |cat -n 1 bar 2 basf $ grep -n ^b example 1:bar 3:basf 

Réponse

Ok commande:

  1. grep -c ^b example: affiche le nombre de lignes correspondantes pour les lignes commençant par la lettre b et

  2. grep ^b example | cat -n: transmettez le résultat de la commande grep à la commande cat et listez-les avec les numéros de ligne. -n oblige cat à les lister avec les numéros de lignes.

Exemple :

example.txt avec contenu:

media sound3 media sound1 media sound2 find sound -type f -name sound[0-9] -printf "media %f\n" > file.txt find sound -type f -name sound[0-9] -exec bash -c "echo media bash >> file.txt" {} \; find sound -type f -name sound[0-9] -exec bash -c "f="{}"; echo media $( basename ${f}) >> file.txt" \; 

Résultat de (1):

3 

Résultat de (2):

1 media sound3 2 media sound1 3 media sound2 

Commentaires

  • Oui votre droite!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *