次のようなデータを保存しているdata.txtという名前のテキストファイルがあります
1 太郎
2 花子
3 三郎
4 四郎
5 佳子
そして、Bashシェル上で次のコマンドを実行して、このファイルから必要データを取り出しています。プログラミング言語AWKです。
$ awk '$2 ~ /郎/{print $0}' data.txt
上記data.txtの中に、探そうとしているデータがない場合、例えば、"郎"というデータがないとき、"該当がありません。"のメッセージを出そうとしました。けれども、どのようにスクリプトを記述すればよいか、条件分岐の方法が思いつきません。

思い悩んでいたら、解決策が見つかりました。ENDを使えば、OKです。
awk '$2 ~ /郎/{print $0; f="該当"} END{if(f != "該当") print "該当がありません。"}' data.txt
マッチしたときだけ変数(ここではf)に文字列(ここでは"該当")を代入し、最後に、つまりすべてのレコード検索を終えた後に、変数の中味に応じて条件分岐ができます。変数の値が"該当"以外(例えば、空っぽ)ならば、メッセージを出すという仕組みです。
おぉ、便利ぃ!
AWK(awk)って、やっぱり便利です。
◆ AWKの定番教科書
それではまた次の記事で。
goosyun
