このawkコマンドを操作する方法

このawkコマンドを操作する方法

以下のコマンドが機能したいのですが、できません。確認してください:

echo "random string random string mark: abcde random string random string" |
    awk '{gensub(/^.*mark: (.{5,5}).*$/,"\\1","g"); print}'

このコマンドは "abcde"だけを返したいです。ただし、常に完全な入力文字列を返します。なぜ?

ベストアンサー1

gensub コマンドは文字列を変更しません。結果は関数の出力です。

試してみてください:

echo "random string random string mark: abcde random string random string" |
awk '{print(gensub(/^.*mark: (.{5,5}).*$/,"\\1","g"))}'

編集する:

ユーザーは(ユーザーが要求したように)トップレベルの出力を解析する必要があることがわかりました。

top -b -n 1 -d 1 |
awk 'NR==1{print(gensub(/.*load average: ([0-9\.\, ]+).*$/,"\\1","gs"))}'

注:カンマを小数点区切り文字として使用するロケールには、ドットとコンマの両方を許可します。

mpstatを見てください。ここで紹介したとおり、これはあなたのニーズに適しているかもしれません。

おすすめ記事