zcat to grep с именем файла - PullRequest
2 голосов
/ 11 марта 2009
ls -ltr|grep 'Mar  4'| awk '{print $9 }'|xargs zcat -fq |grep  12345

Я сейчас использую эту команду, чтобы перечислить записи, которые содержат мою числовую строку. Как я могу получить эту команду, чтобы напечатать имя файла, в котором были найдены строки?

спасибо

Ответы [ 3 ]

4 голосов
/ 11 марта 2009

Использование zgrep

КСТАТИ. то, что вы пытаетесь сделать, можно сделать с помощью find

find  -newermt 'Mar 4' -and ! -newermt 'Mar 5' -exec zgrep -l '12345' {} \;
2 голосов
/ 11 марта 2009

Если вы используете zgrep вместо zcat + grep (что делает то же самое), вы делаете это следующим образом:

ls -ltr | grep 'Mar 4' | awk '{print $9}' | xargs zgrep 12345
0 голосов
/ 11 марта 2009

Передайте параметр -t в xargs, заставив его напечатать команду, которую она выполняет (команду zcat, включая имя файла) перед ее запуском. Команда выводится в stderr, поэтому она не будет мешать вашей трубе.

...