我有一个带有逗号分隔符的源文件,我想将其更改为管道分隔符



我们用逗号获得的列中的一些值,因此当我们尝试转换为管道分隔符时,值也会转换为管道,这不应该发生。

例如 :

Name,claimid
Sandeep,kumar,12
mohan,reddy,13

所需输出

Name,Claimid
Sandeep,kumar|12
mohan,red|13

我尝试使用 sed 命令,但名称列中的值也更改为管道分隔符。任何人都可以帮忙吗

sed 's/,/|/g' <filename>

当你确定要替换第二个,时,你可以使用

echo "Name,claimid
Sandeep,kumar,12
mohan,reddy,13" | sed 's/,/|/2'

当您确定要更改最后一个带有数字的字段之前的,时,您可以使用

echo "Name,claimid
Sandeep,kumar,12
mohan,reddy,13" | sed 's/,([0-9]+)$/|1/'