|
偶是初学shell的小菜鸟,今天完成老大布置的作业,遇到以下问题,请教各位大虾.冰天雪地百拜谢!
nat.log文件格式为:
Oct 7 04:08:31 gw kernel: IN=eth0 OUT=eth0 SRC=192.168.2.22 DST=60.223.49.157 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=58971 DF PROTO=TCP SPT=2487 DPT=11911 WINDOW=16384 RES=0x00 SYN URGP=0 OPT (020405B401010402)
Oct 7 04:08:34 gw kernel: IN=eth0 OUT=eth0 SRC=192.168.2.22 DST=222.35.80.112 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=59037 DF PROTO=TCP SPT=2489 DPT=25049 WINDOW=16384 RES=0x00 SYN URGP=0 OPT (020405B401010402)
Oct 7 04:08:34 gw kernel: IN=eth0 OUT=eth0 SRC=192.168.2.22 DST=59.56.116.150 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=59050 DF PROTO=TCP SPT=2490 DPT=13785 WINDOW=16384 RES=0x00 SYN URGP=0 OPT (020405B401010402)
#-----------------------------------------------------------------------------------------------------
目的:从日志文件中找出DST=59.56.116.150,awk输出做其它用处.
dip="59.56.116.150"
awk 'BEGIN{$9~/"'"$dip"'"/} END{print $9}' nat.log
执行以上命令居然得出结果为:
DST=218.17.209.12
于是怀疑在awk中调用shell变量不正确,检验之:
awk 'BEGIN{print "'"$dip"'"}'
得结果:
59.56.116.150
是正确的.
不知小弟到底错在什么地方,在线苦等!谢谢啦! |
|