我的問題是,當我們在終端與grep
鍵入命令,我們的標題相處輸出:是否有命令只輸出Linux中的部分命令結果?
例如:
lscpu | grep MHz
將輸出:
CPU MHz: 1216.851
但如果我只想要:
1216.851
由於th電子輸出?是否有任何其他命令來執行此任務?
我的問題是,當我們在終端與grep
鍵入命令,我們的標題相處輸出:是否有命令只輸出Linux中的部分命令結果?
例如:
lscpu | grep MHz
將輸出:
CPU MHz: 1216.851
但如果我只想要:
1216.851
由於th電子輸出?是否有任何其他命令來執行此任務?
雖然還有其他的方法,最簡單的可能會是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
)。
或者,如果您有GNU grep,並且您喜歡PCRE正則表達式:'lscpu | grep -oP'MHz:\ s + \ K。*'' –
除'awk'之外,還請看'cut'和'sed'。 – user2864740