当我使用文本编辑器查看文件a.csv
的内容时,它会显示我:
aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk
但当我cat
时,我有:
��aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk
因此,当我想首先删除字符��
时,我不能这样做。例如:
cat a.csv | sed 's/\(.\{2\}\)//'
结果是:
��aa bbb ccc ddd eee fff ggg hhh iii jjj kkk
答案 0 :(得分:3)
这看起来像是文字前面的字节顺序标记。
如果这是正确的,您可以通过将文件转换为不使用字节顺序标记的编码(例如纯UTF-8)来解决此问题,并且这两个字符应该消失。
如何更改文件的编码取决于您使用的编辑器,在vim
中使用的命令为:set nobomb
。
答案 1 :(得分:0)
这可能适合你(GNU sed):
sed -r 's/(\o357\o277\o275){2}//g' file
这将删除八进制三\357\277\275
的任何双重出现。
N.B。识别八进制值使用sed -n l file
并扫描开始\nnn