使用 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
Run Code Online (Sandbox Code Playgroud)
预期产出
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
Run Code Online (Sandbox Code Playgroud)
我知道我可以像这样替换第 6 次出现
sed 's/;/,/6' input_file.csv > output_file.csv
Run Code Online (Sandbox Code Playgroud)
或者最后一个
sed -r 's/(.*);/\1,/' input_file.csv > output_file.csv
Run Code Online (Sandbox Code Playgroud)
但在我的特殊情况下,由于一些细微差别,我需要从最后开始。
我试过类似的东西
sed -r 's/(.*);/\1,/3' input_file.csv > output_file.csv
Run Code Online (Sandbox Code Playgroud)