filtre de chaque ligne de linux bash sortie par regexp
Je veux filtrer la sortie de l'arbitraire de sortie par exemple cat
ou objdump
pour n'afficher que les lignes qui contiennent "pattern".
Est-il un one-liner UNIX/Linux commande pour le faire?
par exemple cat filepath | xargs grep 'pattern' -l
ne fonctionne pas pour moi
xargs
serait passer chaque ligne de la sortie indépendante de l'argument de grep
. grep
est très bien capable de lire de stdin
lorsque vous dirigez la sortie de cat
. Donc, enlevant simplement xargs
devrait fonctionner. Le -l
option à la commande grep est pas vraiment nécessaire pour votre cas d'utilisation. Et si vous ne l'utilisez -l
il devrait être avant le motif et non après 😉OriginalL'auteur T. Webster | 2013-03-22
Vous devez vous connecter pour publier un commentaire.
Vous pourriez tout aussi bien utiliser
grep pattern file
si c'est un fichier statique.-n
drapeau pour afficher les numéros de ligne.cat file | grep -n pattern
ah si simple...réponse acceptée!
OriginalL'auteur
Mieux utiliser
grep -e
ouegrep
(ceci pour les expressions régulières étendues).Ensuite, vous pouvez faire plus robuste choses avec la regex:
Pour afficher tous les 10 chiffres des numéros de téléphone dans un fichier.
Si vous jetez dans un
-o
, seuls les numéros de renvoi (au lieu de l'avant et l'après de contenu sur la ligne).OriginalL'auteur