cat awk_test
192.1.45.88.1521 45.22.210.1.18362
这里有两列,每列都是IP地址+PORT号,每行都是这种格式。现在想用三剑客处理,去除每列的.port number, 得到如下结果:
192.1.45.88 45.22.210.1
这个题目很有挑战性,能做出来的都是顶级高手!
你就想看一下,服务器和哪些IP有连接? grep EST 过滤建立的所有链接,不分端口,grep -v tcp6 去除tcp6干扰
netstat -ant | grep EST |grep -v tcp6 | awk '{print $4,$5}' | awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " $6,$7,$8,$9}'

去重
netstat -ant | grep EST |grep -v tcp6 | awk '{print $4,$5}' | awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " $6,$7,$8,$9}' | sort -2 |uniq
类似的 不仅ESTABLISH,还包括 各种CLOSE_WAIT,SYNC_WAIT
netstat -ant | grep tcp4|grep -vE "LISTEN|CLOSED" | awk '{print $4,$5}' | awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " $6,$7,$8,$9}'
评论
有用 1
[root@abc ~]# cat a
192.1.45.88.1521 45.22.210.1.18362
[root@abc ~]# cat a|awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " $6,$7,$8,$9}'
192.1.45.88 45.22.210.1
话说一般不都是冒号+端口吗
评论
有用 1哇哈哈,这是AIX下netstat输出的结果,好像是IP+点+端口
评论
有用 0哇哈哈,我在AIX上试了,按原来的写法awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " $6,$7,$8,$9}'不行,输出如下:1.2.3.4 1521 9.10.11.13687。将你的代码改为awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " $5,$6,$7,$8}'。输出结果是:1.2.3.4 1521 8.9.10.11,因为LOCAL ADDRESS的端口号肯定是1521, 所以我变通了下,写成 awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " substr($5,6),$6,$7,$8}'得到了想要的结果,但还是想问下,如果local address那里端口不固定(可能是四位数,也可能是五位数)该如何搞个通用写法呢?
评论
有用 0哇哈哈,不愧是高手!上段回复有误,以此为准。我在AIX上试了,按原来的写法awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " $6,$7,$8,$9}'不行,输出如下:1.2.3.4 9.10.11.13687。将你的代码改为awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " $5,$6,$7,$8}'。输出结果是:1.2.3.4 1521 8.9.10.11,因为LOCAL ADDRESS的端口号肯定是1521, 所以我变通了下,写成 awk -F '[./ ]' -v OFS=. '{print $1,$2,$3,$4 " " substr($5,6),$6,$7,$8}'得到了想要的结果,但还是想问下,如果local address那里端口不固定(可能是四位数,也可能是五位数)该如何搞个通用写法呢?
评论
有用 0补充下,|awk前的命令如下: netstat -ant | grep 1521 |awk '{print $4" "$5}' 或 netstat -ant | grep 1521 |awk '{print $4,$5}', 两个命令都出现如上文情况。
评论
有用 0
墨值悬赏

