LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1007|回复: 1

关于awk处理shell变量的问题(在线等)

[复制链接]
发表于 2005-10-19 21:57:56 | 显示全部楼层 |阅读模式
偶是初学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
是正确的.
不知小弟到底错在什么地方,在线苦等!谢谢啦!
 楼主| 发表于 2005-10-19 22:47:19 | 显示全部楼层
已经解决,是自己概念不清,真是对不起大家~ :beat
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表