开发者

grep and awk parse line

I have e a line that looks like:

Feb 21 1:05开发者_StackOverflow:14 host kernel: [112.33000] SRC=192.168.0.1 DST=90.90.90.90 PREC=0x40 TTL=51 ....

I would like to the a list of uniq IPs from SRC=

How can I do this? Thanks


This will work, although you could probably simplify it further in a single awk script if you wanted:

awk  '{print $7}' <your file> | awk -F= '{print $2}' | sort -u


grep -o 'SRC=\([^ ]\+\)' | cut -d= -f2 | sort -u


cat thefile | grep SRC= | sed -r 's/^.*SRC=([^ ]+).*$/\1/' | sort | uniq


This awk script will do:

{a[$7]=1} 

END{for (i in a) print i}


This will print the IP addresses in order without the "SRC=" string:

awk '{a[$7] = $7} END {asort(a); for (i in a) {split(a[i], b, "="); print b[2]}}' inputfile

Example output:

192.168.0.1
192.168.0.2
192.168.1.1


grep -Po "SRC=(.[^\s]*)" file | sed 's/SRC=//' | sort -u

Ruby(1.9+)

ruby -ne 'puts $_.scan(/SRC=(.[^\s]*)/)[0] if /SRC=/' file| sort -u
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜