文字列の特定のフィールドを取得する方法

文字列の特定のフィールドを取得する方法

コマンドの出力の最後の行の 3 番目の列を取得したいですfree。これまでのところ、次のようになっています。

free | tail -n 1 | (here I need to printf the second column value)

どうやってそれをするのですか?

答え1

だけを使用するawk:

free | awk 'ORS=""; END {print $2}'

説明:

END最後の行だけを印刷する

{print $2}2列目だけを印刷する

ORS=""末尾の改行を削除します

または、別の言い方をするとawk:

free | awk  'END {printf "%s", $2}'

答え2

freeの出力の最後の行は ですSwap:.....。その知識があれば、 だけで実行できますawk

free | awk '/Swap:/ {print $3}'

答え3

$ free | tail -n 1 | awk '{print $2}'

関連情報