読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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

bash

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とすると適用されません。