シェルワンライナー160本ノック問題35
問題35 5文字以上のカタカナ言葉を使ったらアウト
問題のファイルは
https://github.com/shellgei/shellgei160
からダウンロードできる。
5文字以上のカタカナ言葉が使われた時点で出力を打ち切る問題だった。正規表現でどう打ち切ればいいのか思いつかないあたり相当頭がバカになっているのかもしれない。最短一致を使って解いていた。
解答例は
cat speech.txt | grep -Po '^.*?[ア-ン]{4}(?=[ア-ン])' | awk '{$2=$1}$1=length($2)'
となる。最後の awk がよくわからなかったが、次のような仕様になっているのでこれでいいようだ。
If the pattern is missing, the action executes for every single record of input. A missing action is equivalent to
{ print }
which prints the entire record.