要 cat log 檔,但是 log 檔裡面有些是 gz 的,想要全部都一起 cat 出來,可以怎麼做呢?
Linux 使用 cat 同時輸出 zcat 的資料
資料準備
- $ cat a.txt
a
b
c - $ gzip a.txt # a.txt.gz
- $ cat b.txt
g
h
i - 想要 cat a.txt.gz b.txt # 秀出全部內容
直接 cat 測試
- $ zcat *
a
b
c - 錯誤訊息:gzip: b.txt: not in gzip format
- $ zcat a.txt.gz | cat b.txt # 只會印出 b.txt 的內容
g
h
i
將 gz、txt 分開印出的作法
下述幾個作法都是可以的,可以自行挑選作法
- $ zcat a.txt.gz | cat b.txt - # 先印出 b.txt 再印出 a.txt.gz
g
h
i
a
b
c - $ zcat a.txt.gz | cat - b.txt # 先印出 a.txt.gz 再印出 b.txt
a
b
c
g
h
i - $ { zcat a.txt.gz; cat b.txt ; }
a
b
c
g
h
i - $ { zcat a.txt.gz; cat b.txt ; } | less # 使用 less 或其它處理