我目前有这个代码:
cat /proc/cpuinfo | grep "MHz" | cut -d ':' -f2 | sed 's/.*/Core NUM&Mhz/'
Run Code Online (Sandbox Code Playgroud)
输出以下内容(对于 8 核):
Core NUM 1941.054Mhz
Core NUM 1949.820Mhz
Core NUM 2022.734Mhz
Core NUM 1877.171Mhz
Core NUM 1938.265Mhz
Core NUM 1945.703Mhz
Core NUM 1845.562Mhz
Core NUM 1781.546Mhz
Run Code Online (Sandbox Code Playgroud)
我想要做的是用实际数字替换“Core NUM”(例如Core 0、Core 1、Core 2、Core 3 ...)但由于我最终使用的是 bash 脚本,因此我也不介意多行/脚本化解决方案。我猜最大的问题是 grep 是一个输出多行的命令,我不知道是否有一种方法可以在 for 或 while 循环中逐行定位这些行。
那么,我该怎么做呢?
让awk
一切为您完成:
</proc/cpuinfo awk -F : '/MHz/{printf "Core %d%sMhz\n", n++, $2}'
Run Code Online (Sandbox Code Playgroud)