我有一个其中带有^ @的文件,并且无法使用python中的sed
或replace
命令将其删除。我只有在vi编辑器中打开文件时才能看到^@
。请提出建议。以下是我使用sed尝试过的方法。
sed's / ^ @ /?/ g'文件名
答案 0 :(得分:2)
在Linux上进行过测试,不确定语法在其他地方是否有所不同,请尝试
$ printf 'abc\0baz\n' | cat -v
abc^@baz
$ printf 'abc\0baz\n' | tr -d '\0' | cat -v
abcbaz
tr
将从输入中删除所有ASCII NUL字符。cat -v
在此处用于突出显示非打印字符
对于文件输入,请使用tr -d '\0' <filename
GNU sed(可能还有其他几种实现)允许使用十六进制值表示字符
$ printf 'abc\0baz\n' | sed 's/\x00//g' | cat -v
abcbaz
因此,要进行就地编辑,请使用sed -i 's/\x00//g' filename
(另请参见:sed in-place flag that works both on Mac (BSD) and Linux)