【问题标题】:to store output of a command executed on a terminal存储在终端上执行的命令的输出
【发布时间】:2015-03-26 11:54:52
【问题描述】:

我编写了一个命令来检索具有最大 CPU% 的进程,使用 ps 和 sort 组合。此命令检索列表的第一个结果,更具体地说,我只想要最顶层进程的 pid。我需要在命令中进行哪些修改才能返回最顶层结果的 pid 以及如何存储它?

$ ps aux --sort -%cpu | tail -n +2 | head -1
sharwari 2831 14.9 25.9 1725720 976104 ? Sl 21:25 20:03 /usr/lib/firefox/firefox

【问题讨论】:

  • 你能显示你的ps 命令吗?
  • ps aux --sort -%cpu |尾-n +2 |头 -1
  • 此命令给出以下结果: sharwari 2831 14.9 25.9 1725720 976104 ? sl 21:25 20:03 /usr/lib/firefox/firefox

标签: linux shell command-line process command


【解决方案1】:
ps aux --sort -%cpu | tail -n +2 | head -1 | awk '{ print $2 }' > outputfile.txt

这将执行您的命令,并使用 awk 命令获取第二列信息。然后将输出重定向到 output.txt(或您希望保存结果的任何文件)

【讨论】:

    【解决方案2】:

    您可以使用管道将您的ps 命令传递给awk

    ps aux --sort -%cpu | awk 'NR==2{print $2}'
    

    【讨论】:

    • 如果我想通过一个C程序来执行这个命令,如何在C代码中获取NR的值?
    • NRawk 变量。如果您想要此命令的输出,只需使用 system 函数调用执行整个命令并获取输出。
    • 如果我使用 exec 函数来执行命令而不是系统函数调用,我怎样才能完成同样的工作?
    • 获取外部命令输出的编写方式是使用popenSee this answer on how to use it
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多