我的问题是,当我们在终端与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