問題101 別解3 について
... | awk 'BEGIN{n=$0}{if($0 - n <= 1){printf $0" " }else{printf "\n"$0" "} n=$0}END{print}'
ここまでの部分を実行すると
97 98 99
101 102
105 106 107 108
112 113 114
117
119
121 122 122
となって最後の 122 がひとつ余計に出力されます1。
また、 BEGIN{n=$0} の $0 も実効がないと思われます。というわけで、当該のコードはより適切には
awk 'BEGIN{n=0}{if($0 - n <= 1){printf $0" " }else{printf "\n"$0" "} n=$0}END{print ""}'
となるべきではないかと考えます。
瑣末な部分に対する指摘で恐縮ですが、以上、ご確認のほどよろしくお願いいたします。
問題101 別解3 について
ここまでの部分を実行すると
となって最後の
122がひとつ余計に出力されます1。また、
BEGIN{n=$0}の$0も実効がないと思われます。というわけで、当該のコードはより適切にはawk 'BEGIN{n=0}{if($0 - n <= 1){printf $0" " }else{printf "\n"$0" "} n=$0}END{print ""}'となるべきではないかと考えます。
瑣末な部分に対する指摘で恐縮ですが、以上、ご確認のほどよろしくお願いいたします。
Footnotes
全体のコマンドラインの最後の方の出力を整える処理 (
awk 'NF>=2{print $1"-"$NF}NF==1{print}') によって解消してはいますが…。 ↩