Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

AWKでも連続して変数を代入できる

AWKでも連続して変数を代入することができます。
同じ値を複数のフィールドに突っ込む場合に特に有効です。

実際のところ

1、2、最終のフィールドを"nil"としたい場合を考えます。
この場合、以下のように=で変数を結んであげるだけで連続して指定できます。

$ cat data.csv | awk -F"," '{$1 = $2 = $NF = "nil"; OFS=","; print substr($0,$N
F)}'
nil,nil,Takarazuka,"225,587","219,862",2.6,39.3,"5,740",nil
nil,nil,Atsugi,"224,426","222,403",0.91,36.2,"6,200",nil
nil,nil,Ageo,"223,882","220,232",1.66,17.6,"12,721",nil
nil,nil,Chōfu,"223,609","216,119",3.47,8.3,"26,941",nil
nil,nil,OtaŌta,"216,444","213,160",1.54,67.8,"3,192",nil
nil,nil,Tsukuba,"214,660","200,528",7.05,109.7,"1,957",nil
nil,nil,Isesaki,"207,199","202,447",2.35,53.8,"3,851",nil
nil,nil,Jōetsu,"203,869","208,082",-2.02,375.8,542,nil
nil,nil,Kumagaya,"203,192","204,675",-0.72,61.7,"3,293",nil
nil,nil,Numazu,"202,283","208,005",-2.75,72.2,"2,802",nil