つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

awkで検索の結果、「該当なし」のメッセージ表示

 次のようなデータを保存しているdata.txtという名前のテキストファイルがあります

  1 太郎
  2 花子
  3 三郎
  4 四郎
  5 佳子

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

プログラミング言語AWKの解説書

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

AWKの定番教科書

 それではまた次の記事で。
  goosyun