如何替换 csv 文件中的第 N 个分隔符?

如何替换 csv 文件中的第 N 个分隔符?

我有一个逗号分隔的 csv 文件作为示例,如下所示:

1,92345,92345,Dear user, this is your amount , 2016-10-10 
2,92345,92345,Dear user, this is your amount , 2016-10-09

我只需要用pipeline替换后面的第四个逗号。,Dear user|

答案1

使用sed,您可以明确地知道sed您只想替换哪些出现的模式,因此:

sed 's/,/|/4' infile

或者使用不同的解决方案是:

sed -r 's/^([^,]*,)([^,]*,)([^,]*,)([^,]*),(.*)/\1\2\3\4|\5/' infile

相关内容