如何从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;'
【讨论】:
你可能会失去grep
:ps -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 包?