現在、次のコードがあります。
cat /proc/cpuinfo | grep "MHz" | cut -d ':' -f2 | sed 's/.*/Core NUM&Mhz/'
出力は次のとおりです(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
私がしたいのは、「Core NUM」を実際の数字(例:Core 0、Core 1、Core 2、Core 3...)に置き換えることです。このコマンドソリューションの残りの部分と一緒に1行で実行できるソリューションを好みます。しかし、最終的にはbashスクリプトで作業するので、複数行/スクリプトソリューションも気に入らない。最大の問題は、grepが複数の行を出力するコマンドであることですが、forループまたはwhileループで行を1つずつ見つける方法があるかどうかはわかりません。
ではどうすればいいですか?
ベストアンサー1
awk
私たちはあなたのためにすべてをやろう:
</proc/cpuinfo awk -F : '/MHz/{printf "Core %d%sMhz\n", n++, $2}'