我的问题是,当我们在终端输入grep
的命令时,我们会得到输出以及标题:
例如:
lscpu | grep MHz
将输出:
CPU MHz: 1216.851
但如果我只想要:
1216.851
作为输出?还有其他命令来执行此任务吗?
答案 0 :(得分:6)
虽然还有其他方法,但最直接的可能是awk
:
$ lscpu | grep MHz | awk '{print $3}'
2494.038
或者:
$ lscpu | grep MHz | awk '{print $NF}'
2494.038
$3
表示输出中的第三个字段(由任意数量的空格分隔)。 $NF
代表输出中的最后一个字段,无论有多少字段。
您也可以完全跳过grep
并使用awk
$ lscpu | awk '/MHz/ { print $NF; exit }'
2494.038
正如@glenn jackman指出的那样,GNU grep
也可以这样做:
lscpu | grep --color=never -oP 'MHz:\s+\K.*'
但上面的其他示例是POSIX友好的(尽管具有lscpu
的系统可能也有GNU grep
)。