用awk解析ss输出
我想从我的C程序中获得一些给定应用程序列表的应用程序及其输出端口列表 我在考虑用类似的东西用awk解析ss输出,awk,netstat,Awk,Netstat,我想从我的C程序中获得一些给定应用程序列表的应用程序及其输出端口列表 我在考虑用类似的东西 ss -natp | awk '/firefox/ { split($4,array,":"); printf "%d ", array[2]} END{print ""}'' 这给了我一个类似于4147759505的列表 一次调用ss,然后在所有应用程序中得到这样的结果的有效方法是什么?(多个输出管道?有没有一种最佳方法可以使用awk进行多次匹配?将ss传输到一个文件,然后多次使用awk?) 谢谢
ss -natp | awk '/firefox/ { split($4,array,":"); printf "%d ", array[2]} END{print ""}''
这给了我一个类似于4147759505
的列表
一次调用ss,然后在所有应用程序中得到这样的结果的有效方法是什么?(多个输出管道?有没有一种最佳方法可以使用awk进行多次匹配?将ss传输到一个文件,然后多次使用awk?)
谢谢 使用
awk
的关联数组功能
ss -natp | awk '{port = split($4, array, ":"); program[$1] = program[$1] " " port; }
END { for (p in program) print p ": " program[p]; }'
未测试-但概念大致正确。我没有检查哪个列包含程序名(并且我的主机上没有
ss
,无法找到)。我假设它是$1
,但是您可以调整脚本以适应它出现的位置。您的脚本与Firefox在线上的任意位置相匹配。