我有一行看起来像:
Feb 21 1:05:14 host kernel: [112.33000] SRC=192.168.0.1 DST=90.90.90.90 PREC=0x40 TTL=51 ....
我想从SRC=
我该怎么做?感谢
答案 0 :(得分:2)
这可行,但如果您愿意,可以在单个awk脚本中进一步简化:
awk '{print $7}' <your file> | awk -F= '{print $2}' | sort -u
答案 1 :(得分:1)
grep -o 'SRC=\([^ ]\+\)' | cut -d= -f2 | sort -u
答案 2 :(得分:0)
cat thefile | grep SRC= | sed -r 's/^.*SRC=([^ ]+).*$/\1/' | sort | uniq
答案 3 :(得分:0)
这个awk脚本将执行:
{a[$7]=1}
END{for (i in a) print i}
答案 4 :(得分:0)
这将按顺序打印IP地址而不使用“SRC =”字符串:
awk '{a[$7] = $7} END {asort(a); for (i in a) {split(a[i], b, "="); print b[2]}}' inputfile
示例输出:
192.168.0.1
192.168.0.2
192.168.1.1
答案 5 :(得分:0)
grep -Po "SRC=(.[^\s]*)" file | sed 's/SRC=//' | sort -u
红宝石(1.9 +)
ruby -ne 'puts $_.scan(/SRC=(.[^\s]*)/)[0] if /SRC=/' file| sort -u