2016-01-24 142 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。*'' –