Macos 从OS X上的文件内联删除空字节

Macos 从OS X上的文件内联删除空字节,macos,sed,byte,Macos,Sed,Byte,我有一组文件,大约每秒钟的字节槽都有空字节。此外,它们的开头有字节序列FF FE,需要删除。我收到了这些文件(它们实际上是路由器配置文件,所以是纯文本),我不知道这些字节是如何进入其中的。但是,该文件看起来像这样,例如,我发现了或: 我想你可以想象这是怎么回事。我尝试了各种方法来删除空字节和前2个字节: sed-i.bak的/\x00//g'R2.txt什么也不做 LC_ALL=C sed-i.bak的/\x00//g'R2.txt什么都不做 LC_ALL=C trR2 test.txt工作正

我有一组文件,大约每秒钟的字节槽都有空字节。此外,它们的开头有字节序列FF FE,需要删除。我收到了这些文件(它们实际上是路由器配置文件,所以是纯文本),我不知道这些字节是如何进入其中的。但是,该文件看起来像这样,例如,我发现了或:

我想你可以想象这是怎么回事。我尝试了各种方法来删除空字节和前2个字节:

  • sed-i.bak的/\x00//g'R2.txt
    什么也不做
  • LC_ALL=C sed-i.bak的/\x00//g'R2.txt
    什么都不做
  • LC_ALL=C trR2 test.txt
    工作正常,但不符合要求
  • LC_ALL=C sed-i.bak$'s/\x00//g'R2.txt
    投诉关于
    sed:1:“s/”:未终止的替代模式
所以。。。我的问题是,如何在OSX上从这个文件内联的前两个字节(FF FE)中删除空字节

谢谢。

你说的是“大约每秒钟一个字节槽都有空字节”。这是用“charset=utf-16le”编码的文件的明确指示,您需要将其转换为utf-8、ascii..等。请尝试以下方法:

iconv -f "current-encoding"  -t "desired-encoding" infile.txt > outfile.txt 

请你打开vi中的文件,告诉我你看到了什么“检查此标志”。您还可以做:设置列表以显示所有不可见的字符。另请参见此处的建议:有趣的是,vi不显示此类字符。它在每行末尾显示^M,但这并不能解释问题。vi在底部显示[converted]。首先要做的事=>>在vi(m)中打开文件并执行:%s/\r/g,这样您就可以使用windows回车键返回到*nix回车键。您的文件是否显示为一行谢谢您在聊天中的帮助,它实际上是utf-16le。在OSX上,我无法使用iconv转换文件。不过,它使用Debian工作。
iconv -f "current-encoding"  -t "desired-encoding" infile.txt > outfile.txt