awkで三項演算子を用いる

awkでは、以下のように記述することで三項演算子を用いて条件に応じて処理を切り替えることができる。

(条件) ? true時の挙動 : false時の挙動
Sponsored Links

以下、いくつか例を記述してみる。

[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < # 条件に応じて変数xの値を変える
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < echo 1|awk '{a=$1;(a==1) ? x="True!" : x="False!";print x}'
True!
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < echo 2|awk '{a=$1;(a==1) ? x="True!" : x="False!";print x}' 
False!
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < # 変数へ代入する値だけを変える                             
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < echo 1|awk '{a=$1;x= (a==1) ? "True!" : "False!"; print x}'
True!
[blacknon@blacknon-ThinkPad-X201]% ~(`・ω・´)  < echo 2|awk '{a=$1;x= (a==1) ? "True!" : "False!"; print x}'
False!

 

なお、if文のように挙動にprintなどの処理を記述することはできないので、基本は変数への代入などに利用するといいだろう。

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*