コマンド出力から特定の列をキャプチャ

コマンド出力から特定の列をキャプチャ

コマンドを実行すると、出力の最初の5行をファイルにリダイレクトする方法がわかります。出力から特定の情報だけをリダイレクトする方法を知りたいです。

たとえば、「free -m」コマンドを実行し、出力の「used」列をテキストファイルにリダイレクトしたいとします。

出力全体を手動で編集せずにこれを行うにはどうすればよいですか?

ベストアンサー1

よりエレガントな答えがあると確信していますが、次のように動作します。

free -m | awk '{if (NR == 1) {print $2} else {print $3}}' > file.out

このコマンドは標準出力を取得しfree -mて送信しますawk。最初の行の場合は、2番目の列(ここでは興味のある列のヘッダー)を印刷し、そうでない場合は3番目の列(free -m次の行に追加の列がある)を印刷します。

おすすめ記事