我有一组文件,这些文件的大致每个第二个字节槽处都有一个空字节。此外,它们在开始时具有字节序列FF FE,需要将其删除。我得到了文件(它们实际上是路由器配置文件,所以是纯文本),我不知道这些字节是如何到达的。但是,文件看起来像这样,例如我在这里或这里找到的:
FF FE 65 00 6E 00 61 00 62 6C 00 6C 65 00 0D 00
0A 00 63 00 6F 00 6E 00 66 00 69 00 37 00 75 00
72 00 65 00 20 00 74 00 65 00 72 00 6D 00 69 00
想想您可以想象它是如何进行的。我尝试了各种方法来删除空字节和前2个字节:
sed -i.bak 's/\x00//g' R2.txt
什么也没做。LC_ALL=C sed -i.bak 's/\x00//g' R2.txt
什么也没做。LC_ALL=C tr < R2.txt -d '\000' > R2-test.txt
可行,但不符合要求。LC_ALL=C sed -i.bak $'s/\x00//g' R2.txt
抱怨 sed: 1: "s/": unterminated substitute pattern
所以...我的问题是,如何在OSX上从此文件内联中删除前两个字节(FF FE)的空字节?
谢谢。
您说“大约在第二个字节插槽中为空字节”。这清楚地表明文件正在使用“ charset = utf-16le”编码,您需要将其转换为utf-8,ascii ..etc。尝试如下所示的方法:
iconv -f "current-encoding" -t "desired-encoding" infile.txt > outfile.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句