2009-03-11 6 views
2
ls -ltr|grep 'Mar 4'| awk '{print $9 }'|xargs zcat -fq |grep 12345 

J'utilise maintenant cette commande pour répertorier les enregistrements qui contiennent ma chaîne numérique Comment puis-je obtenir alos cette commande pour imprimer le nom du fichier les chaînes ont été trouvés dans?zcat à grep avec le nom de fichier

grâce

+0

clonage à nouveau bug? – dmckee

+0

Ce n'est pas un dup, cela utilise la réponse de 633998 et le raffinage. – unwind

+0

Désolé. Je me rétracte. – dmckee

Répondre

4

Utilisez zgrep

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

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

passer l'option -t-xargs, l'amenant à imprimer la commande est en marche (la commande 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.

2

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 
Questions connexes