121 votes

Sortie des résultats de grep vers un fichier texte, besoin d'une sortie plus propre

Lorsque j'utilise la commande Grep pour trouver une chaîne de recherche dans un ensemble de fichiers, comment puis-je transférer les résultats dans un fichier texte ?

Existe-t-il également un commutateur pour la commande Grep qui fournit des résultats plus propres pour une meilleure lisibilité, comme un saut de ligne entre chaque entrée ou un moyen de justifier les noms de fichiers et les résultats de la recherche ?

Par exemple, un voyage pour changer...

./file/path: first result
./another/file/path: second result
./a/third/file/path/here: third result

à

./file/path: first result

./another/file/path: second result

./a/third/file/path/here: third result

155voto

alfasin Points 19063
grep -n "YOUR SEARCH STRING" * > output-file

En -n imprimera le numéro de ligne et le > redirigera les résultats de grep vers le fichier de sortie.
Si vous voulez "nettoyer" les résultats, vous pouvez les filtrer en utilisant pipe | par exemple :
grep -n "test" * | grep -v "mytest" > output-file correspondra à toutes les lignes contenant la chaîne "test", à l'exception des lignes correspondant à la chaîne "mytest" (c'est le commutateur -v ) - et redirigera le résultat vers un fichier de sortie.
Quelques bonnes astuces grep peuvent être trouvées dans ce poste

46voto

La redirection de la sortie du programme est effectuée par le shell.

grep ... > output.txt

grep n'a pas de mécanisme pour ajouter des lignes vides entre chaque correspondance, mais fournit des options telles que le contexte autour de la ligne correspondante et la colorisation de la correspondance elle-même. Voir le grep(1) pour plus de détails, en particulier la page de manuel -C y --color options.

6voto

dan Points 11

Pour ajouter une ligne blanche entre les lignes de texte dans grep pour en faciliter la lecture, pipe ( | ) par le biais de sed :

grep text-to-search-for file-to-grep | sed G

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X