无法从文件中删除控件@

时间:2018-08-01 08:34:17

标签: unix sed

我有一个其中带有^ @的文件,并且无法使用python中的sedreplace命令将其删除。我只有在vi编辑器中打开文件时才能看到^@。请提出建议。以下是我使用sed尝试过的方法。

  

sed's / ^ @ /?/ g'文件名

1 个答案:

答案 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