【发布时间】:2017-11-12 17:13:38
【问题描述】:
使用 Top 命令重复 5 次,将结果通过管道传送到 Grep 和 Cut 命令以打印 init 屏幕上的进程。
大家好,我有我的代码行:
top -n 5 | grep "init" | cut -d" " -f3 > topdata
但我看不到任何输出来验证它是否正常工作。 此外,下一个脚本要求我使用单行命令来显示以兆字节为单位的总内存使用量。我应该将 Free 的结果通过管道传输到 Grep,以选择或过滤模式为“Total:”的行,然后将该结果通过管道传输到 Cut 并显示代表使用的总内存的数字。到目前为止:
free -m -t | grep "total:" | cut -c25-30
也没有得到任何打印回报。任何帮助表示赞赏。
【问题讨论】:
-
1) grep 区分大小写。 free 说“Total”,你用 grep 表示“total”。所以不匹配! grep 表示“总计”或使用 grep -i。
-
2) 当我需要从一行中取出一个数字时,我更喜欢 awk 而不是 cut。您不知道该数字的长度,但您知道它将是 Total: 之后的第一个数字。所以:免费 -m -t | grep "总计:" | awk '{print $2}'