使用时:" ps -fu $ {USER} | grep地址"我可以找到java进程以及作为进程命令行的一部分出现的调试端口号。 我的问题是,如何从命令行中提取包含许多字符的端口号。这个问题可以归结为如何在两个字符串之间提取一个单词。我一直在查找如何使用grep,awk或sed。但是我的所有试验都以显示整个流程命令行结束,而不仅仅是java端口号。
非常感谢。
答案 0 :(得分:1)
您可以使用sed
ps -fu ${USER} | grep address | sed 's/.*address=\([0-9]*\).*/\1/'
<强>更新强>:
ps
的输出可能包含grep
命令本身。您可以再次使用grep
对其进行过滤:
ps -fu ${USER} | grep address | sed 's/.*address=\([0-9]*\).*/\1/' | grep ^\d