限制 grep 的输出

发布于 2024-12-05 16:11:19 字数 365 浏览 1 评论 0原文

我正在尝试创建一个服务器管理器,但我需要获取某些进程的进程 ID 和命令。

例如:

 ps ax | grep ./skulltag
 4760 pts/2    Tl     0:02 ./skulltag-server
 4793 pts/2    Tl     0:01 ./skulltag-server
 4956 pts/2    Tl     0:01 ./skulltag-server -port 13000
 4958 pts/2    Tl     0:26 ./skulltag-server -port 13001

我如何让它只返回进程,只返回命令(./skulltag-server)或两者都返回?谢谢。

I'm trying to make a server manager, but I need to grab the process IDs and Commands of some processes.

For example:

 ps ax | grep ./skulltag
 4760 pts/2    Tl     0:02 ./skulltag-server
 4793 pts/2    Tl     0:01 ./skulltag-server
 4956 pts/2    Tl     0:01 ./skulltag-server -port 13000
 4958 pts/2    Tl     0:26 ./skulltag-server -port 13001

How would I get it to only return the process, only return the command (./skulltag-server) or both? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夏の忆 2024-12-12 16:11:19

您可以通过管道连接到 awk 来选择要输出的

字段ps 斧头 | grep ./skulltag | awk '{ print $1 }' 将打印第一列 (pid)

请注意,您可能还想研究使用 -o 选项 ps 修改其输出

You can pipe to awk to select which field to output

E.g. ps ax | grep ./skulltag | awk '{ print $1 }' will print the first column (pid)

Note that you may also want to look into using the -o option to ps to modify its output

乖乖兔^ω^ 2024-12-12 16:11:19

我认为你应该使用 awk

ps ax | grep ./skulltag | awk '{print $1}'  # Or $5, or $1 and $5

这将为你提供进程 ID 的列表。

I think you should use awk

ps ax | grep ./skulltag | awk '{print $1}'  # Or $5, or $1 and $5

This will give you the list of the process ids.

一场信仰旅途 2024-12-12 16:11:19

要获取进程 ID,您还可以使用非标准但方便的 pgrep

ps ax | grep ./skulltag | awk '{ print $1 }'

大致相当于:

pgrep skulltag

For getting process ids you can also use non-standard but handy pgrep.

ps ax | grep ./skulltag | awk '{ print $1 }'

Is roughly equivalent to:

pgrep skulltag
独自←快乐 2024-12-12 16:11:19

您可以使用 awk 解析 ps ax 的结果来提取所需的列:

aix@aix:~/tmp$ ps ax | grep bash
 1906 pts/5    Ss+    0:00 bash
13749 pts/31   Ss     0:00 bash
27315 ?        SN     0:00 /bin/bash /etc/cron.daily/backup
27648 pts/31   S+     0:00 grep --color=auto bash

aix@aix:~/tmp$ ps ax | grep bash | awk '{print $1}'
1906
13749
27315
27652

aix@aix:~/tmp$ ps ax | grep bash | awk '{print $5}'
bash
bash
/bin/bash
grep

You could parse the results of ps ax using awk to extract the columns you want:

aix@aix:~/tmp$ ps ax | grep bash
 1906 pts/5    Ss+    0:00 bash
13749 pts/31   Ss     0:00 bash
27315 ?        SN     0:00 /bin/bash /etc/cron.daily/backup
27648 pts/31   S+     0:00 grep --color=auto bash

aix@aix:~/tmp$ ps ax | grep bash | awk '{print $1}'
1906
13749
27315
27652

aix@aix:~/tmp$ ps ax | grep bash | awk '{print $5}'
bash
bash
/bin/bash
grep
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文