新手grep问题...输出加倍

新手grep问题...输出加倍

我一直在自学 bash 脚本,我想编写一个脚本来生成一个包含特定硬件信息的 txt 文件。我认为“grep”是一个很棒的工具,可以从 /proc 和其他地方提取我想要的信息。

我的问题是输出翻倍了。我做错了什么?

$ grep "Mhz" /proc/cpuinfo
cpu MHz     : 1200.000
cpu MHz     : 1200.000

$ cat /proc/cpuinfo | grep "MHz"
cpu MHz     : 1200.000
cpu MHz     : 1200.000

....我确实知道上述命令不会重定向到我的 txt 文件。我试图让命令在重定向之前输出我想要的内容。

答案1

您有两个 CPU,或者至少两个核心,或者至少两个线程。Ubuntu 将它们视为两个不同的处理器并/proc/cpuinfo反映这一点。

您可以人为地限制它仅提取第一个匹配项:

$ grep -m1 "[MG]Hz" /proc/cpuinfo
model name  : Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz

我不明白你问题的第二部分。如果你想显示该将其写入文件,使用tee

$ grep -m1 "[MG]Hz" /proc/cpuinfo | tee testfile
model name  : Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz

$ cat testfile 
model name  : Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz

如果你只是想将其写入文件,只需用 重定向它>。Grep 将匹配项输出到 STDOUT,这样就可以重定向了。

相关内容