我有一个带有一些丑陋字符的大文本文件,比如
他很瘦,他的意思是,他有一个很棒的火焰喷射器和喷气背包 - “这里有什么不爱的?”
我想替换
’
到
拥有“他很瘦,他的意思”等等
但是标准的SED命令
sed -i 's/’/'/g' file.txt
不起作用。
符号 - 具有HexCode< 0432>< 0402>< 2122> (看起来像那样)
我试过像
这样的东西sed -i 's/\x432\x402\x2122/'/g' file.txt
但没有任何事情发生
非常感谢任何有关如何管理它的想法。
答案 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