从文本文件中删除特殊字符(< 200c>< 200d>)

时间:2012-02-13 07:50:01

标签: bash shell sed special-characters sh

我有一个带有一些特殊看不见的字符的文本文件。有没有办法删除这样的特殊字符。我尝试在vim编辑器中使用sed但它不起作用,而且gedit和kwrite不显示这些字符

  

ാരയാതരയകകിടെയാതരകകാരനയാതരകകാരെയാതരയിലയാതരകളയാതരയകകിടയിലയാതരാകകലിഎതരഎഫഎസഎനഎയരഎലഎനനഎനതഎനറരഎതതിയഎകസഎലലാഎനനാഎതരയാണഎനനീഎനറെഎചചഎനനതഎനനദിവസംദിനംദളവതിരമിസസമനനമോരസമൌണടമകകോണമനനിലടികകററ< 200C> ടികറകക&&&&&&&&&&&&&&&&&&&കകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകകക ബകകബാങബാങബബബബംഗംഗംഗ



































     

< 200C>是我要删除的特殊字符。我能够使用

在vim编辑器中看到这些字符
 :set list

我在vim中运行了以下sed命令

:%s/\<200c\>//c

:%s/<200c>//c

但是无法删除特殊字符。我需要以不同的方式触发sed命令吗?

2 个答案:

答案 0 :(得分:7)

我认为您唯一缺少的是如何在vim中的搜索模式中输入特殊字符。这将是:^Vu200c^Vu200d

有关详细信息,请查看here

答案 1 :(得分:1)

要在vim中删除特殊的Unicode字符<200c><200d>

:%s/\%u200c//g
:%s/\%u200d//g

您还可以使用sed

$ sed -i "s/$(echo -ne '\u200c')//g" file.txt
$ sed -i "s/$(echo -ne '\u200d')//g" file.txt