Linux 使用 cat 同時輸出 zcat 的資料

要 cat log 檔,但是 log 檔裡面有些是 gz 的,想要全部都一起 cat 出來,可以怎麼做呢?

Linux 使用 cat 同時輸出 zcat 的資料

資料準備

  1. $ cat a.txt
    a
    b
    c
  2. $ gzip a.txt # a.txt.gz
  3. $ cat b.txt
    g
    h
    i
  4. 想要 cat a.txt.gz b.txt # 秀出全部內容

直接 cat 測試

  1. $ zcat *
    a
    b
    c
  2. 錯誤訊息:gzip: b.txt: not in gzip format
  3. $ 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 或其它處理

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料