小编Mat*_*epa的帖子

替换每行中第 n 个从结尾出现的字符串

使用 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)

debian sed text-processing

9
推荐指数
4
解决办法
814
查看次数

标签 统计

debian ×1

sed ×1

text-processing ×1