我有一个文件,当用崇高的文本打开时有一些SOH字符。
我正在尝试用空格替换此 SOH 字符。
我尝试了Python和sed命令,但它们都不起作用。
cat -v small.txt | sed 's/'001'/ /g' > out.txt
它用^A替换它。
这里也是python代码。
escapes = ''.join([chr(char) for char in range(1, 32)])
for f in file_in:
t = f.translate(None, escapes)
print(t)
问题出在哪里?
谢谢
你为什么要用cat -v
?这确实会将所有不可打印的字符替换为文本表示(...如^A
)。您是否尝试在没有sed
的情况下运行该命令;-)这将表明正在发生的事情,s/'001'/ /g'
是错误的;-)
无论如何,这里不需要cat
:
sed $'s/x01/ /g' file.txt
$
告诉 bash
shell 解释此字符串中的转义代码,例如 x01
。
在Python中,它的工作方式几乎相同:
>>> 'Hellox01World.'.replace('x01', ' ')
我不确定你期望f.translate(None, escapes)
做什么?这看起来像随机试错代码,根本不是translate()
的工作方式;-)