你如何用 sed 删除 ^@?

How do you remove ^@ with sed?

我正在尝试解析一些日志,其中有一个奇怪的 ^@ 符号。我可以在 中通过剪切该字符和 paste/searching 来删除它,但是如何在 bash 命令行中自动删除它。

这行不通

sed 's/^@//'

当在文本文件中遇到由其他替代符号表示的不需要的字节时,hexdumpod 之类的工具会有所帮助。试试这个:

  1. 复制原始文件。

  2. 删除复制文件中的所有内容,除了包含神秘符号的一两行。保存文件。

  3. 要查看字节 真正 是什么,请执行:

    hexdump -v  -e '/1  "%_ad#  "' -e '/1 " _%_u\_\n"' file
    
  4. 从列表中找到不需要的字节的十六进制代码,(让我们 说是 00),然后尝试:

    sed 's/\x00//' file
    

如果可行,运行 与原始文件相同的 sed 行。