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

特定の日付に変更されたすべてのファイルを見つけて、それらをzcatしてfielsで数値ストリングを検索したいとします。zcatパイプto grep

ファイル自体ではなく文字列のファイル名を検索するため、上記は機能しません。

助けが必要ですか?

M

答えて

1

代わりにfindを試してみてください。そして/またはxargs

2

使用xargsのawkでファイル名の出力に対してgrepを実行するには:

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

それとも、私が推測する、自身のawkからパイプの残りの部分を実行します。

1

コマンドラインを正しく読んだ場合、その内容ではなくファイル名を解凍しようとしているzcatが表示されます。これを解決するためにxargsのを使用します。

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

xargsfindの使用に関する罰金の回答に加えて、あなたはまた、代わりにzgrepまたはgrep -Zzcatや配管を排除することで、余分なプロセスを取り除くことができます。

+0

私のシステム(OS X)では、grep -Zはあなたが思うように見えません。 –

+0

明らかにLinux上ではありません。おっとっと。 zgrepはより良い選択です。 – dwc