我有這樣的iptable日誌:grep和打印恢復參照
Feb 25 10:32:48 XXX: [414645.555838] FW: DEN TCP IN=eth0 OUT= MAC=XYZ SRC=1.1.1.1 DST=2.2.2.2 LEN=40 TOS=0x00 PREC=0x00 TTL=57 ID=0 DF PROTO=TCP SPT=80 DPT=51814 WINDOW=0 RES=0x00 RST URGP=0
我希望到grep 1.1.1.1和80(SRC和SPT場)。 我這樣做:
grep -oP 'SRC=([^ ]+).+SPT=([0-9]+)' /var/log/iptables.log
但它返回:
SRC=1.1.1.1 DST=2.2.2.2 LEN=40 TOS=0x00 PREC=0x00 TTL=57 ID=0 DF PROTO=TCP SPT=80
如何獲得$ 1和$ 2只(參照匹配值)?
感謝的sed解決方案,這工作。但我無法相信grep沒有這樣的功能。 – w00d 2013-02-25 13:31:43
要以像grep一樣的方式使用sed,請使用:'sed -n's /.../.../ p'file',否則所有行將會是打印。 – potong 2013-02-25 17:10:25
@potong你是對的,在這種情況下,我猜所有的線都匹配,但我仍然會編輯。謝謝 – 2013-02-25 18:04:42