簡體   English   中英

zcat pipe 到 grep

[英]zcat pipe to grep

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

我想找到在某個日期修改的所有文件,然后對它們進行 zcat 並在文件中搜索數字字符串。

以上不起作用,因為它在文件名中搜索字符串而不是文件本身。

有什么幫助嗎?

使用xargs在 awk 的文件名 output 上運行 grep:

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

或者,我猜,從 awk 本身運行 pipe 的 rest。

嘗試使用find代替。 和/或xargs

如果我正確閱讀了您的命令行,則它的 zcat 正在嘗試解壓縮文件名而不是其內容。 使用 xargs 來解決這個問題:

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

除了關於使用xargsfind的詳細答案之外,您還可以通過消除zcat和管道到zgrepgrep -Z來擺脫額外的過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM