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.