sedを使用して、指定されたファイルの各行で最後の文字のN番目の項目を置き換える方法は?
;
この場合、最後から3番目を次に変更したいと思います。,
入力する
1;2;3;4;5;6;7;8;9
10;20;30;40;50;60;70;80;90
100;200;300;400;500;600;700;800;900
期待される出力
1;2;3;4;5;6,7;8;9
10;20;30;40;50;60,70;80;90
100;200;300;400;500;600,700;800;900
6番目のアイテムをこのように変更できることを知っています。
sed 's/;/,/6' input_file.csv > output_file.csv
または最後
sed -r 's/(.*);/\1,/' input_file.csv > output_file.csv
しかし、私の特別なケースでは、わずかなニュアンスのために最後から始める必要があります。
私は次のことを試しました
sed -r 's/(.*);/\1,/3' input_file.csv > output_file.csv
ベストアンサー1
単に行を反転し、N番目の発生位置を変更してから、反転することができます。
rev file | sed 's/;/,/3' | rev