saída XXD sem quebras de linha

9

Posso dizer a xxd para não imprimir nenhuma quebra de linha em sua saída e ter meu despejo como uma linha contínua?

[user@localhost] : ~ $ echo -n "this is a long line and xxd is going to take multiple lines to print it" | xxd -p
746869732069732061206c6f6e67206c696e6520616e6420787864206973
20676f696e6720746f2074616b65206d756c7469706c65206c696e657320
746f207072696e74206974
    
por Juicy 27.07.2015 / 00:58

1 resposta

10

O que você precisa é a opção -c.

# echo -n "this is a long line and xxd will print it as one line" | xxd -p -c 1000000

746869732069732061206c6f6e67206c696e6520616e64207878642077696c6c207072696e74206974206173206f6e65206c696e65

Aqui estão algumas informações da documentação :

-c cols | -cols cols format octets per line. Default 16 (-i: 12, -ps: 30, -b: 6). Max 256.

A documentação diz que o valor máximo para o parâmetro "c" é 256, mas eu tentei valores maiores e funcionou. Confira:

# xxd -c 1000000 -p -l 1000000 /dev/urandom | wc -c
2000001

Aqui eu despejo um milhão de bytes de / dev / random e recebo uma string de 2 milhões + 1 caracteres. Cada byte de / dev / random é representado por 2 caracteres e o byte adicional é a nova linha final.

    
por 10.10.2016 / 18:04

Tags