限制 grep 的输出
我正在尝试创建一个服务器管理器,但我需要获取某些进程的进程 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以通过管道连接到 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
我认为你应该使用 awk
这将为你提供进程 ID 的列表。
I think you should use awk
This will give you the list of the process ids.
要获取进程 ID,您还可以使用非标准但方便的
pgrep
。大致相当于:
For getting process ids you can also use non-standard but handy
pgrep
.Is roughly equivalent to:
您可以使用
awk
解析 ps ax 的结果来提取所需的列:You could parse the results of
ps ax
usingawk
to extract the columns you want: