linux下zip檔案內容查詢 ,檔案查詢並刪除

2021-08-19 03:41:12 字數 992 閱讀 5908

今天剛好遇到乙個需要查詢歸檔日誌中的內容,歸檔的格式是zip,

假如是非壓縮包檔案,可以用grep命令去搜尋,例如:  grep  "被查詢的字串" 檔名  

假如是.gz壓縮包類或者是zip類,可以用zgrep命令去搜尋,例如:  zgrep  "被查詢的字串" 檔名 

如果需要遞迴 -r  忽略大小寫 -i 這些原有支援的都直接使用

查詢刪除:

find / -name "*.***" | xargs rm -rf

ls |grep % |xargs rm -rf

xargs命令是給其他命令傳遞引數的乙個過濾器,也是組合多個命令的乙個工具。它擅長將標準輸入資料轉換成命令列引數,xargs能夠處理管道或者stdin並將其轉換成特定命令的命令引數。xargs也可以將單行或多行文字輸入轉換為其他格式,例如多行變單行,單行變多行。xargs的預設命令是echo,空格是預設定界符。這意味著通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。xargs是構建單行命令的重要元件之一

可以參考:

另乙個 exec

find命令的-exec引數

xargs:通過緩衝方式並以前面命令列的輸出作為引數,隨後的命令呼叫該引數

若忽略 xargs 的 options 來看的話,

cm1 | xargs cm2

可以單純看成: cm2 `cm1`

因此, find .... | xargs rm 也可作 rm `find ...` 來處理.

然而, 若 find 的結果太多, 可能會超過rm 可能接受的最大argument數量而失敗.

xargs優點:由於是批處理的,所以執行效率比較高(通過緩衝方式)

xargs缺點:有可能由於引數數量過多(成千上萬),導致後面的命令執行失敗

若換成 find .... -exec   rm {} \; 的話, 

因為rm 是" 逐個 " item 去處理的, 則無此憂慮

可以參考:

linux下查詢檔案內容

gvim 可以分割視窗實現查詢多個檔案的功能。不過最好是用命令列這個強大的工具了。比如查詢 home znsys 下所有含 voip 的檔名稱 grep l voip home znsys 比如查詢 home znsys 資料夾下的所有第三層目錄內所有檔案中包含 networking 的行 如這些目...

linux下解壓zip檔案

linux自帶的unzip命令可以解壓windows下的zip格式的壓縮檔案。unzip命令 語法 unzip 選項 壓縮檔案名.zip 各選項的含義分別為 x 檔案列表 解壓縮檔案,但不包括指定的file檔案。v 檢視壓縮檔案目錄,但不解壓。t 測試檔案有無損壞,但不解壓。d 目錄 把壓縮檔案解到...

linux下解壓zip檔案

linux下解壓zip檔案 收藏 linux自帶的unzip命令可以解壓windows下的zip格式的壓縮檔案。unzip命令 語法 unzip 選項 壓縮檔案名.zip 各選項的含義分別為 x 檔案列表 解壓縮檔案,但不包括指定的file檔案。v 檢視壓縮檔案目錄,但不解壓。t 測試檔案有無損壞,...