将文件从 ASCII 转换为二进制

将文件从 ASCII 转换为二进制

我有一系列带分隔符和固定宽度的文件,包含许多行字符和数值,如下所示(带分隔符的示例):

Smith,Audrey,Ford,2000,21300.99
Miller,Heath,Dodge,1990,2000.99
Miller,Heath,Dodge,2010,15200.99

如何将其转换为二进制文件:

01010011 01101101 01101001 01110100 01101000 00101100 01000001 01110101 01100100 01110010 01100101 01111001 00101100 01000110 01101111 01110010 01100100 00101100 00110010 00110000 00110000 00110000 00101100 00110010 00110001 00110011 00110000 00110000 00101110 00111001 00111001 00001010 01001101 01101001 01101100 01101100 01100101 01110010 00101100 01001000 01100101 01100001 01110100 01101000 00101100 01000100 01101111 01100100 01100111 01100101 00101100 00110001 00111001 00111001 00110000 00101100 00110010 00110000 00110000 00110000 00101110 00111001 00111001 00001010 01001101 01101001 01101100 01101100 01100101 01110010 00101100 01001000 01100101 01100001 01110100 01101000 00101100 01000100 01101111 01100100 01100111 01100101 00101100 00110010 00110000 00110001 00110000 00101100 00110001 00110101 00110010 00110000 00110000 00101110 00111001 00111001

从命令行?对于定界文件或固定宽度文件会有不同吗?

一个类似的问题是将包含以 ascii 写入的整数的文件转换为整数的二进制文件,但这不适用于混合类型和多个条目行。

我在 x86_64 GNU/Linux(小端)机器上。

编辑:

有没有一种简单的方法可以将 ASCII 文本文件实际编码为二进制文件,而不仅仅是查看人类可读的版本?

答案1

请注意,在文件系统级别,有没有不同ascii 和二进制文件之间。 ascii 或文本文件只是包含人类可读字节(或诸如 LF=new line 之类的控制命令)的二进制文件。

要以二进制形式显示存储的字节,您可以使用xxd(部分vim):

xxd -b INPUTFILE | cut -d" " -f 2-7 | tr "\n" " "

要将结果存储在文件中,请使用:

xxd -b INPUTFILE | cut -d" " -f 2-7 | tr "\n" " " > OUTPUTFILE

相关内容