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
# 我猜你也可以這樣做; unix cut command
cat access.log | cut --complement -d" " -f 1,2,8
# man cut 可以看到如何使用;唯一的問題是,如果多個空格連在一起; cut 命令會視爲多個 fields;
呵呵,感謝,我也來補上去~~