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:
-
grep -c ^b example
: affiche le nombre de lignes correspondantes pour les lignes commençant par la lettreb
et -
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
obligecat
à 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!