使用SED和HEX替换一些文本

时间:2014-10-17 07:54:20

标签: regex sed hex

我有一个带有一些丑陋字符的大文本文件,比如

他很瘦,他的意思是,他有一个很棒的火焰喷射器和喷气背包 - “这里有什么不爱的?”

我想替换

’

拥有“他很瘦,他的意思”等等

但是标准的SED命令

sed -i 's/’/'/g' file.txt

不起作用。

符号 - 具有HexCode< 0432>< 0402>< 2122> (看起来像那样)

我试过像

这样的东西
sed -i 's/\x432\x402\x2122/'/g' file.txt

但没有任何事情发生

非常感谢任何有关如何管理它的想法。

3 个答案:

答案 0 :(得分:3)

这可能适合你(GNU sed):

sed 's/\o320\o262\o320\o202\o342\o204\o242/'\''/g' file

要获取八进制表示,请使用sed:

sed -n l0 file

并插入o\xxx字符串(\oxxx)。{/ p>

答案 1 :(得分:1)

您不能在单引号中包含单引号。使用双引号:

sed "s/’/'/g" file.txt

答案 2 :(得分:0)

可能像

sed -n '1!H;1h
$ {s/.*/’/;G
:a
   s/^\(...\)\(\n.*\)\1/\1\2'/
   t a
   s/^....//p
   }' YourFile