删除逗号后的一个字符

删除逗号后的一个字符

我有一个文本文件(大约 300'000 行),其中有一个独特的列,其中显示 2 到 6 个字段,以逗号分隔。

A,BB,CC  
EF,GHI,DKLM,OP          
Q,RS,TUV 
W,XY 

我想要实现的目标:

A,B,C  
EF,HI,KLM,P         
Q,S,UV 
W,Y 

换句话说,我想删除每行中每个逗号后面的第一个字符。

预先感谢您的时间和帮助。此致,

洛朗

答案1

$ cat file
A,BB,CC
EF,GHI,DKLM,OP
Q,RS,TUV
W,XY
$ sed 's/,./,/g' file
A,B,C
EF,HI,KLM,P
Q,S,UV
W,Y

正则表达式,.匹配一个文字逗号,后跟任何其他字符。该sed表达式s/,./,/g 仅用一个逗号替换每个逗号和后面的字符,从而有效地删除其他字符。对每行上的每个非重叠匹配项进行替换。

将输出重定向到新文件,或以适当的方式使用sedwith (请参阅-i如何使用 sed -i (就地编辑)实现可移植性?)。

相关内容