我有一个文件,当使用sublime文本打开时有一些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)
有什么问题?
谢谢
答案 0 :(得分:1)
您为什么使用cat -v
?这确实会用文本表示替换所有不可打印的字符(例如^A
)。您是否尝试在没有 sed
;-)的情况下运行命令那将显示正在发生的事情以及s/'001'/ /g'
是错误的; - )
无论如何,这里不需要cat
:
sed $'s/\x01/ /g' file.txt
$
告诉bash
shell解释此字符串中的转义码,例如\x01
。
在Python中,它的工作原理基本相同:
>>> 'Hello\x01World.'.replace('\x01', ' ')
我不确定你期望f.translate(None, escapes)
做什么?这看起来像是随机的反复试验代码,并且根本不是translate()
的工作方式; - )