我一直在自学 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,这样就可以重定向了。