我必須在壓縮文件中找到一些文字。我正在使用 Cygwin。有些壓縮檔案是空的。顯然,我根本不想獲得有關那些“空 zip 檔案”的“嘈雜”資訊。例如
find . -iname '*.zip' -print -exec unzip -l {} \; |grep -i vbs
vbs
我正在尋找的字串在哪裡。
問題是它返回了我正在尋找的內容,但它也返回了很多噪音,如下所示:
C\ProgramData\ABC\DEF\VBScripts\OutputArchiveFiles.vbs
warning [/z/XYZ/Backup/123/456/Backup Set 1/Backup Files 1/Backup files 2.zip]: zipfile is empty
我不想看到那些有“zipfile isempty”的行
我嘗試透過管道連接它,|grep -v 'zipfile is empty'
但它仍然輸出這些行。
我的問題:如何避免列印那些「空」行並只看到我正在尋找的行;即,vbs?
答案1
這些額外的行可能在stderr
流中。你可以透過看看他們是否重定向到一個單獨的文件(例如command 2> error.txt
)
基本上,運行:
find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt |grep -i vbs
如果這解決了您的問題,您可以替換error.txt
為/dev/null
(這可能不適用於所有版本的 cygwin)