Convertendo um arquivo de ASCII para Binary

1

Eu tenho uma série de arquivos delimitados e com largura fixa, contendo muitas linhas de caracteres e valores numéricos, como assim (exemplo delimitado):

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

Como posso converter isso no arquivo binário:

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

da linha de comando? Seria diferente para arquivos com largura delimitada ou fixa?

Uma pergunta semelhante feita foi Converte o arquivo com números inteiros escritos em ascii para arquivo binário de inteiros , mas isso não funciona para o tipo misto e várias linhas de entrada.

Eu estou em uma máquina GNU / Linux (little endian) x86_64.

EDITAR:

Existe uma maneira simples de realmente codificar o arquivo de texto ASCII para binário em vez de apenas visualizar a versão legível?

    
por mlegge 01.10.2014 / 18:00

1 resposta

4

Por favor, note que no nível do sistema de arquivos, não há nenhuma diferença entre arquivos ascii e binários. Um arquivo ASCII ou de texto é apenas um arquivo binário contendo bytes legíveis por humanos (ou comandos de controle como LF = nova linha).

Para exibir os bytes armazenados em formato binário, você pode usar xxd (parte de vim ):

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

Para armazenar o resultado em um arquivo, use:

xxd -b INPUTFILE | cut -d" " -f 2-7 | tr "\n" " " > OUTPUTFILE
    
por 01.10.2014 / 18:08