问题描述
假设我正在查看端口 22。所以我使用
netstat -an | grep 22
我该怎么做才能使命令的输出只是显示“LISTEN”、“ESTABLISHED”等的列
我需要一个命令或短脚本,它将端口作为输入并具有如下所示的输出。
预期输出:
LISTEN
我尝试做类似的事情
netstat -an | grep .22 | awk '{print $7}'
这个问题是,我似乎也得到了一些其他端口,如 2279 和 1022。我不知道如何为 netstat 输出修复这个问题,我不能使用基于长度的过滤,因为我可能还需要输入 3 位或 4 位端口。
我只想要特定端口的输出,在本例中为 22。
解决方法
使用您显示的示例,请尝试以下代码。只需将 netstat 命令的输出发送到 awk
代码作为输入,然后检查第 4 个字段是否以 :22 结尾(检查端口 22),然后打印其最后一列,即其状态。
netstat -an | awk '$4~/:22$/{print $NF}'