我正在尝试用sed替换特殊字符,用Þ替换;
例如,文件的行是
0370ÞA020Þ4000011600ÞRED USADOÞ0,00Þ20190414
0370ÞA020Þ4000011601ÞRED USADOÞ0,00Þ20190414
0370ÞA020Þ4000011602ÞRED USADOÞ0,00Þ20190414
谢谢!
编辑
它可以解决。
谢谢!
答案 0 :(得分:1)
尝试一下-对我来说简单的替代工作
sed 's/Þ/;/g'
答案 1 :(得分:1)
创建tr
就是要做的工作,但要查看以下结果:
$ tr 'Þ' ';' < file
0370;;A020;;4000011600;;RED USADO;;0,00;;20190414
0370;;A020;;4000011601;;RED USADO;;0,00;;20190414
0370;;A020;;4000011602;;RED USADO;;0,00;;20190414
$ sed 's/Þ/;/g' < file
0370;A020;4000011600;RED USADO;0,00;20190414
0370;A020;4000011601;RED USADO;0,00;20190414
0370;A020;4000011602;RED USADO;0,00;20190414
tr
似乎将每个Þ
视为2个重复字符-sed可能认为相同,但是tr
会将一组字符转换为一组字符时,sed会将其转换将正则表达式转换为字符串,因此即使它认为Þ
的宽度为2个字符,它仍然可以执行您想要的操作。因此,关于尝试使用tr
替换非ASCII字符-YMMV只是一个有趣的警告!
答案 2 :(得分:0)
如果您的数据位于“ d”文件中,请尝试使用gnu sed:
IBOutlet