2019/08/01

shellscript fizzbuzz

shellscriptで書いたFizzBuzzについて、いろいろ教えてもらった。


yes|nl|cut -f1なんていらんかったんやw

seq inf | awk '{a=""; if($0%3==0){a=a "Keisuke"} if($0%5==0){a=a "Honda"} print a?a:$0}'
yes | awk '{a=""; if(NR%3==0){a=a "Keisuke"} if(NR%5==0){a=a "Honda"} print a?a:NR}'

驚いたのはむしろこっち。
a=""; if($0%3==0){a=a "Keisuke"} if($0%5==0){a=a "Honda"} print a?a:$0
3で割り切れたらaには"Keisuke"が入って、さらに5でも割り切れたらaに"Honda"を追記してんのね。a?a:$0は三項演算子で先頭のaがboolとして動いてて中身が入ってればtrue扱いなわけですか。おもろー。


 
seq inf | awk 'a="";$1%3==0{a=a"fiz"}$1%5==0{a=a"buz"}{print a?a:$1}'


0 件のコメント:

コメントを投稿