linux - 使用 awk 获取特定的字符串

标签 linux bash awk sed ps

我有一个在 ps 输出中包含多个字符串的 java 进程。我只想要一个特定的字符串。

比如我有

root 5565 7687  0 Nov20 ?  00:00:54 /bin/java -Xms256m -Xmx512m -XX:MaxPermSize=128m  -XX:PermSize=256m -XX:MaxPermSize=256m -Dstdout.file=/tmp/std.out -da -Dext.dir.class=profiles/ -Dprocess.name=java1 -Djava.security.policy=security.policy

我只需要 process.name=java1 并且不需要 ps 输出的任何其他内容。我无法使用 awk 或 sed 找到切实可行的方法。

我尝试使用:

ps -ef | grep java1 | grep -v grep | awk '/process.name/ {print $0}'

我得到的输出是 ps -ef out。

有没有更简单的方法?

最佳答案

这是一种方法:

ps -ef | awk -F"process.name" '{split($2,a," ");print FS a[1]}'
process.name=java1

关于linux - 使用 awk 获取特定的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27153582/

相关文章:

c++ - Linux下视频文件+片段着色器

linux - 在 nasm 中指定起始地址?

linux - 内核构建 : how are the "torvalds" and "stable" repos related?

regex - 使用 sed 更改找到的模式中的任意数量的分隔符

linux - grep 唯一出现

linux - 如何使用sed从字符串中的特定点提取文本?

regex - 使用 sed 从文件中删除与模式不匹配的行

linux - 将所有脚本中的变量评估方法从 $VAR_NAME 更改为 ${VAR_NAME}

bash - 检查命令是否将某些内容打印到标准输出的条件

linux - AWK : matching two files by first column doesn't work