管道 PS 输出到文本文件

5 linux ps

所以我想做的是非常基本的......但我不知道如何去做。假设我有一个程序正在运行,但我想将 ps -C "ProgramXX" 的输出通过管道传输到一个文件中。

通常运行 ps -C "ProgramXX" 会产生以下效果:

PID TTY TIME            CMD
123 ?   00:00:00    Program1
142 ?   00:00:00    Program1
165 ?   00:00:00    Program1
221 ?   00:00:00    Program1
Run Code Online (Sandbox Code Playgroud)

他们是否有任何“简单”的方式将第一列和第四列(忽略顶部标题行)放入文本文件中。

我想你可以运行 ps -C "Program1" >> Data.txt .....然后也许运行一个脚本来消除脂肪?这将在 Bash 中完成。也许使用 grep 或其他东西......但我真的不知道。顺便说一句,这将运行多次......所以 data.txt 将继续增长。

Ric*_*chm 12

您可以控制通过 获取输出的列ps。请注意,确切的命令行在 Linux/Unix 的各种风格之间确实有所不同,但我相信以下内容可以满足您的需求。

ps --no-headers -o pid,comm  -C "ProgramXX" >> Data.txt
Run Code Online (Sandbox Code Playgroud)

手册页ps(1)将列出所有可用的选项。


Sor*_*gal 6

ps是一把功能性的瑞士军刀。你要这个

ps -C "ProgramXX" -o pid=,comm=
Run Code Online (Sandbox Code Playgroud)

-o控制输出列,尾随=表示您不需要标题。

如果你这样写:

ps -o comm= -o pid= | grep '^ProgramXX'
Run Code Online (Sandbox Code Playgroud)

然后它应该适用于大多数ps实现。不幸的是,-C是一种GNU主义。


gle*_*man 5

pgrep -l Program1 会给出你想要的输出。