grep出力の各行に異なるプレフィックスを追加するには?

grep出力の各行に異なるプレフィックスを追加するには?

現在、次のコードがあります。

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}'

おすすめ記事