Bash 仅从netstat输出中提取开放端口号
此命令有以下输出:Bash 仅从netstat输出中提取开放端口号,bash,awk,grep,Bash,Awk,Grep,此命令有以下输出: netstat -ant |grep LISTEN | awk '{ print $4 }' 0.0.0.0:111 192.168.122.1:53 0.0.0.0:22 127.0.0.1:631 127.0.0.1:25 :::111 :::22 ::1:631 ::1:25 如何仅从输出中提取最后的端口号?请使用awk尝试此方法,如果有帮助,请告诉我 netstat -ant | awk '/LISTEN/{sub(/.[^:]*/,"");gsub(/:| .*
netstat -ant |grep LISTEN | awk '{ print $4 }'
0.0.0.0:111
192.168.122.1:53
0.0.0.0:22
127.0.0.1:631
127.0.0.1:25
:::111
:::22
::1:631
::1:25
如何仅从输出中提取最后的端口号?请使用awk尝试此方法,如果有帮助,请告诉我
netstat -ant | awk '/LISTEN/{sub(/.[^:]*/,"");gsub(/:| .*/,"");print}'
上面将为第4列提供端口,但是如果您想在状态(侦听/时间等待)等之前获取第4列的输出,那么下面的一个可能也会对您有所帮助
netstat -ant | awk '/LISTEN/{split($5, a,":");print a[2]}'
用awk试试这个,如果对你有帮助,请告诉我
netstat -ant | awk '/LISTEN/{sub(/.[^:]*/,"");gsub(/:| .*/,"");print}'
上面将为第4列提供端口,但是如果您想在状态(侦听/时间等待)等之前获取第4列的输出,那么下面的一个可能也会对您有所帮助
netstat -ant | awk '/LISTEN/{split($5, a,":");print a[2]}'
附加到您的行中
| sed 's/.*://'
附加到您的行中
| sed 's/.*://'
您可以使用
rev
和cut
执行此操作:
netstat -ant | awk '/LISTEN/ { print $4 }' | rev | cut -f1 -d: | rev
- 第一个
反转输出,以便将最后一个字段翻转到前面rev
提取第一个字段cut-f1
- 最后的
将字符串反转回其原始方向rev
awk
来完成,这更有效:
netstat -ant | awk '/LISTEN/ { n = split($4, a, ":"); print a[n] }'
按分隔符拆分字符串并将其存储在数组中,然后返回数组的大小split
打印数组的最后一个元素(注意数组索引以awk中的1开头)print a[n]
rev
和cut
执行此操作:
netstat -ant | awk '/LISTEN/ { print $4 }' | rev | cut -f1 -d: | rev
- 第一个
反转输出,以便将最后一个字段翻转到前面rev
提取第一个字段cut-f1
- 最后的
将字符串反转回其原始方向rev
awk
来完成,这更有效:
netstat -ant | awk '/LISTEN/ { n = split($4, a, ":"); print a[n] }'
按分隔符拆分字符串并将其存储在数组中,然后返回数组的大小split
打印数组的最后一个元素(注意数组索引以awk中的1开头)print a[n]
|awk-F:“{print$NF}”
$NF
是最后一列的内容。谢谢。。那也行!!从每一行还是仅从最后一行?每一行的端口号。使用awk:append|awk-F:“{print$NF}”
$NF
是最后一列的内容。谢谢。。那也行!!