Что вам нужно, так это опция -c.
# echo -n "this is a long line and xxd will print it as one line" | xxd -p -c 1000000
746869732069732061206c6f6e67206c696e6520616e64207878642077696c6c207072696e74206974206173206f6e65206c696e65
Вот некоторая информация из документации:
-c cols | -cols cols Формат октетов на строку. По умолчанию 16 (-i: 12, -ps: 30, -b: 6). Max 256.
В документации сказано, что максимальное значение параметра "c" - 256, но я пробовал и большие значения, и все работало. Посмотрите:
# xxd -c 1000000 -p -l 1000000 /dev/urandom | wc -c
2000001
Здесь я сбрасываю один миллион байт из /dev/random и получаю строку из 2 миллионов + 1 символа. Каждый байт из /dev/random представлен 2 символами, а дополнительный байт является последней новой строкой.