Bye Bye Moore

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

sedで特定範囲のみに正規表現を適用する

sedで特定範囲のみに正規表現を適用する場合、
範囲を指定した上でいつものように正規表現をあてます。

実際のところ

101,Hyōgo,Takarazuka,"225,587","219,862",2.6,39.3,"5,740",Special city
102,Kanagawa,Atsugi,"224,426","222,403",0.91,36.2,"6,200",Special city
103,Saitama,Ageo,"223,882","220,232",1.66,17.6,"12,721",
104,TokyoTokyo,Chōfu,"223,609","216,119",3.47,8.3,"26,941",
105,Gunma,OtaŌta,"216,444","213,160",1.54,67.8,"3,192",Special city
106,Ibaraki,Tsukuba,"214,660","200,528",7.05,109.7,"1,957",Special city
107,Gunma,Isesaki,"207,199","202,447",2.35,53.8,"3,851",Special city
108,Niigata,Jōetsu,"203,869","208,082",-2.02,375.8,542,Special city
109,Saitama,Kumagaya,"203,192","204,675",-0.72,61.7,"3,293",Special city
110,Shizuoka,Numazu,"202,283","208,005",-2.75,72.2,"2,802",Special city

というデータがあり、このうち4行目までにTokyoTokyoという記述があったらTokyoと一個にしたい場合

awk "1,4{ s/TokyoTokyo/Tokyo/g}

とやればよいです。
ためしに、1,4を1,3とすると適用されません。