使用顶部命令重复5次,将结果传递给 Grep 和剪切命令以打印 init <的PID / em>屏幕上的进程。
大家好,我有我的代码:
top -n 5 | grep "init" | cut -d" " -f3 > topdata
但我看不到任何输出来验证它是否正常工作。 此外,下一个脚本要求我使用一行命令,该命令显示以兆字节为单位的总内存。我应该将结果从Free to Grep传输到选择或过滤带有模式的行&#34; Total:&#34;然后将结果传递给Cut并显示表示使用的总内存的数字。到目前为止:
free -m -t | grep "total:" | cut -c25-30
也没有获得任何打印返回。任何帮助表示赞赏。
答案 0 :(得分:1)
扩展我的评论:
free -m -t | grep "Total:" | awk '{print $2}'
top -n 5 | grep "cinnamon" | awk '{print $1}'
替换&#34;肉桂&#34; by&#34; init&#34;根据您的要求。为什么awk中有1美元?我的顶部将PID放在第一列。相应调整。
总的来说,当你有一个由某个字符分隔的字符串时,使用cut是很好的。防爆。 aaa; bbb; ccc,你会剪掉-d&#39 ;;&#39;。但这里的数字可能有不同的长度,所以使用cut不是(恕我直言)最好的解决方案。
答案 1 :(得分:0)
init
进程有PID 1,没有理由这样做。
为了找到一般过程的PID,我建议:
pidof <name>