3

我想从我的 C 程序中获取某个给定应用程序列表的应用程序列表及其输出端口。

我正在考虑使用类似的东西

ss -natp |  awk '/firefox/ { split($4,array,":"); printf "%d ", array[2]} END{print ""}''

这给了我一个类似的列表41477 59505

调用 ss 一次然后为所有应用程序获取这样的有效方法是什么?(多个输出管道?是否有最佳方式使用 awk 进行多次匹配?将 ss 写入文件,然后多次 awk-ing 多次?)

谢谢!

4

1 回答 1

3

使用 的关联数组功能awk

ss -natp | awk '{port = split($4, array, ":"); program[$1] = program[$1] " " port; }
                END { for (p in program) print p ": " program[p]; }'

未经测试 - 但这个概念大致正确。

于 2012-01-13T18:11:41.817 回答