如何使用grep剝離日誌檔案以刪除各種可有可無的資訊?

如何使用grep剝離日誌檔案以刪除各種可有可無的資訊?

我的日誌檔案具有以下格式:

Dec 26 13:11:48 192.168.1.1 kernel: ACCEPT IN=br0 OUT=vlan1 SRC=192.168.1.2 DST=74.125.43.147 LEN=44 TOS=0x00 PREC=0x00 TTL=63 ID=9312 DF PROTO=TCP SPT=11733 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B4) 

現在我正在嘗試刪除一些可有可無的信息,以使輸出更好地可讀且排列良好,並將其放入新文件中。

結果應如下所示,並且應僅包含以下資訊:

Dec 26 13:11:48 192.168.1.2 74.125.43.147 TCP SPT=11733 DPT=80

怎麼做?

答案1

awk '{sub(/PROTO=/, "", $17); print $1,$2,$3,$4,$17,$18,$19}' < logfile.log > processed-logfile.log

答案2

嘗試 awk 使用 print 語句選擇所需的列,將它們按所需的順序放置。

例如,如果您想要係統上進程「foo」的 PID(進程 ID),您可以執行

ps -ef | grep foo | grep -v grep | awk '{ print $2 ; }'

相關內容