使用 AWK 過濾不要的欄位

Linux 使用 AWK 來垂直取得資料,例如:

  • $ cat access.log | awk '{print $1, $2}'

但是反過來,想要過濾掉某些欄位,剩下的全部印出來,該怎麼做呢?

使用 AWK 過濾不要的欄位

想要過濾掉其他欄位,主要就是把不要的欄位設定為「空」,再來印出 $0 就可以了~

  • $ cat access.log | awk '{$1=$2=$8=""; print $0}'

感謝 CHUNG TSAI提點,cut 也可以達成:

  • $ cat access.log | cut --complement -d" " -f 1,2,8

作者: Tsung

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

在〈使用 AWK 過濾不要的欄位〉中有 2 則留言

  1. # 我猜你也可以這樣做; unix cut command

    cat access.log | cut --complement -d" " -f 1,2,8

    # man cut 可以看到如何使用;唯一的問題是,如果多個空格連在一起; cut 命令會視爲多個 fields;

發表迴響

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