+ -
当前位置:首页 → 问答吧 → 匹配行前3行

匹配行前3行

时间:2011-01-27

来源:互联网

report for Hello.NetWork (120.31.144.7)
Host is up (0.00030s latency).
PORT   STATE SERVICE
80/tcp open  http

这是一组,当然端口不仅仅是80还有别的
想得到的是 匹配 端口的IP

如这组 就是想匹配80的IP为120.31.144.7就可以

但我现在不是很清楚怎么得到匹配80行前3行这个条件

谢谢

作者: Gray1982   发布时间: 2011-01-27

  1. [17:43:22-Bob@hzling08:~]-(1017)No.14->$ grep -B3 "80/tcp" urfile | awk -F'[()]' '{print $2}' | head -n1
  2. 120.31.144.7
  3. [17:43:31-Bob@hzling08:~]-(1018)No.15->$ grep -B3 "80/tcp" urfile | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"
  4. 120.31.144.7
复制代码

作者: xiaopan3322   发布时间: 2011-01-27

不好意思 没说全
grep的这个知道
只是东西比较多 这个效率差点
所以........
不过 还是谢谢LS

作者: Gray1982   发布时间: 2011-01-27

回复 Gray1982


    awk '{a[NR]=$0}a[NR]~/^80/{print a[NR-3]}' urfile
report for Hello.NetWork (120.31.144.7)

作者: shileiadmin   发布时间: 2011-01-27