Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題138

問題138 テストケースの作成

問題のファイルは

https://github.com/shellgei/shellgei160

からダウンロードできる。

ブレース展開でサクッと片づけられると思ったら全然片付かなくてダメだった。

解答例は

awk 'BEGIN{getline o<"os.csv";getline b<"browser.csv";getline s<"service.csv";split(o,os,",");split(b,br,",");split(s,sv,",");for(i in os)for(j in br)if((br[j]!="IE"||os[i]=="Windows")&&(br[j]!="Safari"||os[i]=="macOS"))for(k in sv)print os[i],br[j],sv[k];}'

となる。if文で問題の条件をうまく再現している。