web-dev-qa-db-fra.com

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

Lorsque vous utilisez la commande Grep pour rechercher une chaîne de recherche dans un ensemble de fichiers, existe-t-il un moyen de 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 nets pour une meilleure lisibilité, tel qu'un saut de ligne entre chaque entrée?

Il existe peut-être un script grep qui génère des résultats plus nets.

Merci

64
user2398188
grep -n "YOUR SEARCH STRING" * > output-file

Le -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 à l'aide du tuyau |, par exemple:
grep -n "test" * | grep -v "mytest" > output-file correspondra à toutes les lignes portant la chaîne "test", à l'exception des lignes correspondant à la chaîne "mytest" (le commutateur -v) - et redirigera le résultat vers un fichier de sortie.
Quelques bons conseils de grep peuvent être trouvés sur ce post

88
alfasin

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

grep ... > output.txt

grep ne dispose 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 la page de manuel grep(1) pour plus de détails, en particulier les options -C et --color.

29