Conversion
將文件從 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
從命令行?分隔或固定寬度的文件會有所不同嗎?
一個類似的問題是Convert file with integers in ascii to binary file of integers,但這不適用於混合類型和多條目行。
我在 x86_64 GNU/Linux(小端)機器上。
編輯:
有沒有一種簡單的方法可以將 ASCII 文本文件實際編碼為二進製文件,而不僅僅是查看人類可讀的版本?
請注意,在文件系統級別上,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