如何从ps -aux中提取单词

Posted

技术标签:

【中文标题】如何从ps -aux中提取单词【英文标题】:how to extract word from ps -aux 【发布时间】:2019-08-20 08:47:07 【问题描述】:

当我执行命令 ps -ef | grep yypasswd 我收到这个输出。

testacc 25124194 2512312620   0 08:00:53  pts/0  0:00 grep yypasswd

如何用命令从这个输出词“yypasswd”中提取

【问题讨论】:

***.com/questions/55411436/… 这个 awk 技巧不起作用 你想做什么?为什么要提取您正在搜索的单词? 好的 james 感谢它对 $NF 的帮助 等等。你grep 来自ps 输出的string,唯一拥有string 的进程是你的grep string,你想从中提取string 【参考方案1】:
ps -ef | grep -o yypasswd

来自 man grep :

-o, --only-matching 仅打印匹配行的匹配(非空)部分,每个这样的部分在单独的输出行上。

请注意,您发布的 ps 行是您运行的 grep 的实际过程。要排除这个,你可以这样做:

ps -ef | grep -v grep | grep -o yypasswd

另一种搜索进程名称的方法是使用 pgrep :

pgrep -f yypasswd

pgrep 会给你匹配进程的 PID

【讨论】:

grep:不是一个可识别的标志:o 用法:grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwyu] [- p[parasep]] -e pattern_list... [-f pattern_file...] [file...] 用法:grep [-r] [-R] [-H] [-L] [-E|-F ] [-c|-l|-q] [-insvxbhwyu] [-p[parasep]] [-e pattern_list...] -f pattern_file... [file...] 用法:grep [-r] [ -R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwyu] [-p[parasep]] pattern_list [文件...] 好的,但它仍然无法识别参数 -o grep:不是识别标志:o @Martin 您使用的是哪个操作系统?还可以在我更新的答案中尝试 pgrep 选项 aix 标签亮了。【参考方案2】:

使用:

ps -ef | grep yypasswd | awk 'print $8'

或使用 pgrep

pgrep -l yypasswd | awk 'print $2'

【讨论】:

【参考方案3】:

解决方案

ps -ef | grep yypasswd | awk '/yypasswd/print $NF;'

【讨论】:

你可能会失去grepps -ef | awk '/yypasswd/print $NF' 不,我不能。当没有 grep 执行时,我什么都没有。我正在使用 Aix 操作系统。所以是ksh 哦,对了。因为除了你的grep 之外,其他进程都没有yypasswd。我什至不会问为什么不只是echo yypasswd 你的意思是这个进程没有激活吗?当我输入 ps -ef | grep yypasswd 我认为它会从活动进程中搜索我 这太荒谬了。您使用 grep 搜索 yypasswd,然后将结果通过管道传输到 awk 以在您已经知道它存在时再次搜索 yypasswd,然后您使用 awk 打印您知道是 yypasswd 的行上的最后一个单词。您还使用ps 查找到 grep 的后续管道正在创建的进程,以便 yypasswd 将出现以供 grep 和 awk 查找。您可以将整个脚本缩减为echo 'yypasswd'。无论你真正想要做什么,这都不是办法。【参考方案4】:

由于不清楚您要做什么:

如果您期望以下输出:

yypasswd

然后做

ps -ef | grep yypasswd | awk 'print $8'

如果你想要以下输出:

testacc 25124194 2512312620   0 08:00:53  pts/0  0:00

然后做

ps -ef | grep yypasswd |  awk 'print $1, $2, $3, $4, $5, $6 ,$7'

希望有帮助。

【讨论】:

考虑对[y]ypasswd 进行grepping,如果这是您想要的实际 过程,否则您将面临grep yypasswd 的误报匹配(在问题中看到)的风险跨度>

以上是关于如何从ps -aux中提取单词的主要内容,如果未能解决你的问题,请参考以下文章

如何从 base64 编码字符串创建 Java Key 对象,以便使用 JJWT 进行 PS256 解析

Powershell:如何在未连接的计算机上安装适用于 PowerShell 的 Nuget 提供程序,以便可以从 PS 命令行安装 nuget 包?

AE 里 如何给中间白色矩形添加一个从白色到透明的渐变效果

刚从淘宝入手一个ps3厚机,打开mmCM后屏幕雪花黑屏并闪烁里面画面,可以看到游戏,屏幕右上方有红

用ps打开raw文件为啥会被压缩

抖音PS教程类短视频占据巨大流量,此时进场如何分一杯羹?