2016-01-24 38 views

回答

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)。

+2

或者,如果您有GNU grep,并且您喜欢PCRE正则表达式:'lscpu | grep -oP'MHz:\ s + \ K。*'' –