2 votes

zcat à grep avec nom de fichier

ls -ltr|grep 'Mar  4'| awk '{print $9 }'|xargs zcat -fq |grep  12345

J'utilise maintenant cette commande pour lister les enregistrements qui contiennent ma chaîne numérique. Comment puis-je faire en sorte que cette commande imprime le nom du fichier dans lequel les chaînes ont été trouvées ?

gracias

4voto

vartec Points 53382

Utilisez zgrep

BTW. ce que vous essayez de faire peut être fait avec trouver

find  -newermt 'Mar 4' -and ! -newermt 'Mar 5' -exec zgrep -l '12345' {} \;

2voto

f3lix Points 13634

Si vous utilisez zgrep au lieu de zcat+grep (qui fait la même chose), vous le faites comme cette option comme ceci :

ls -ltr | grep 'Mar 4' | awk '{print $9}' | xargs zgrep 12345

0voto

unwind Points 181987

Passez le -t option pour xargs ce qui lui permet d'imprimer la commande en cours d'exécution (l'option zcat y compris le nom du fichier) avant de l'exécuter. La commande est imprimée sur stderr, de sorte qu'elle n'interfère pas avec votre pipe.

0voto

ashawley Points 1848
$ find -maxdepth 1 -type f -newermt 'Mar 4' ! -newermt 'Mar 5' \
       -execdir zgrep 12345 '{}' /dev/null ';'

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