以下のコマンドが機能したいのですが、できません。確認してください:
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を見てください。ここで紹介したとおり、これはあなたのニーズに適しているかもしれません。