Pipe

即使未壓縮,是否可以使 zcat 輸出文本?

  • May 26, 2014

問題是我有一些壓縮或純文字的數據庫轉儲。文件副檔名等沒有區別。zcat在未壓縮的文件上使用會產生錯誤而不是輸出。

是否有另cat一種足夠智能的工具來檢測它得到的輸入類型?

只需添加-f選項。

$ echo foo | tee file | gzip > file.gz
$ zcat file file.gz
gzip: file: not in gzip format
foo
$ zcat -f file file.gz
foo
foo

(如果您不是 GNU(或現代 BSD 中的 GNU 模擬)並且只知道文件,請使用gzip -dcf而不是)。zcat -f``zcat``.Z

一個可移植的簡單建議是使用zgrep而不是zcat,並且只使用匹配每一行的搜尋模式。

zgrep $ some-file

不像zcat,zgrep會愉快地處理未壓縮的文件。來自 man zgrep:

zgrep - search possibly compressed files for a regular expression

引用自:https://unix.stackexchange.com/questions/131918