How to output only matching fields in awk on Linux? Linuxでawkを使って、マッチしたフィールドだけを出力する方法は?
Linuxの環境で、awkコマンドは-Fオプションを使用してフィールドの区切り文字を指定し、$記号を用いてフィールドを参照できます。条件文を使用して、条件に一致する行やフィールドのみを出力することができます。
例を示します。data.txtという名前のファイルがあるとします。ファイルの内容は以下の通りです:
John,25,Male
Emily,30,Female
David,40,Male
Maleの行だけを出力する場合は、次のコマンドを使用できます。
awk -F ',' '$3=="Male" {print}' data.txt
結果は出力されます。
John,25,Male
David,40,Male
上記のコマンドで、-F ‘,’ はフィールドの区切り文字をコンマに指定しました。$3==”Male” は条件文で、性別フィールドが”Male”の行のみを出力することを意味しています。{print} はマッチした行を出力することを示します。
名前フィールド(最初のフィールド)だけを出力したい場合は、次のコマンドを使用できます:
awk -F ',' '{print $1}' data.txt
結果は次の通りです:
John
Emily
David
上記の指示では、{print $1}は最初のフィールド(名前フィールド)を出力することを示しています。