列でフィルタリングする方法

列でフィルタリングする方法

これに関する良い例を見つけるのは意外に難しいです。次のコマンドがあるとします。

ps -aeF

7 列目はプロセッサ番号 (?) です。2 番目のコアで実行されているプロセスでフィルタリングしたいだけです。どうすればいいでしょうか? もちろん、次のようにすると問題が発生します。

ps -aeF | awk '{print $7}' | grep 2

すると、すべての列が印刷されずに、単一の列のみが印刷されます。

答え1

Awkスクリプトは、パターンそして行動パターンが論理的に真と評価されたときに実行されます。

... | awk '$7==2 {print}'

またはもっと簡潔に言えば、{print}デフォルトのアクションであるため

... | awk '$7==2'

関連情報