質問: ### 前提・実現したいこと **csvファイルの特定列にのみ編集を行い、他の列はINPUTをそのまま出力したい。** awkで実現する方法を調べていたところ、下記サイトにたどり着きました。 サイトの通り行うことで実現できたのですが、構文で理解できてない点がございます。 参考にしたサイトはこちら ### 該当のソースコード ``` awk 'BEGIN {FS=",";OFS=","}{$2="999000"}1' /tmp/test.file ``` ### 不明な点 該当のソースコードは、csvファイルの2列目のみ"9990000"に書き換えているのですが、 コード`{$2="999000"}1'`のカッコ外に記載されている"1"が、なぜ記載されているかが、調べてもわかりませんでした。 ("1"を削除して実行すると正しく出力されないことは確認しています。) 上記の構文について、ご説明いただける方がいらっしゃいましたらよろしくお願い致します。
回答: 1は処理を行うかどうかの条件です。awkにおいて0以外の数字は真、0は偽ですので、1とだけ書かれていればすべての行に対して真、つまり後続の{}内の処理がすべての行に対して行われます。 また、後続の{}がない場合、{ print $0 }が省略されているものとみなします。