Satır kesmeleri olmadan XXD çıkışı


13

Çıkışında xxdherhangi bir satır sonu yazdırmamayı ve dökümü tek bir sürekli satır olarak göstermemeyi söyleyebilir miyim ?

[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

5
Yeni trsatırları silmek için kullanabilirsiniz , örneğin... | xxd -p | tr -d \\n
don_crissti

Bunun için neye ihtiyacınız olduğuna bağlı, ancak kullanışlı bir seçeneği , yazı / düz dökümü (veya bu konu için herhangi bir düz hexdump) xxdiçin boşluk -ralanını yok saymasıdır -p. Örneğin. Aşağıdaki satır ile sarılır \n, ancak ters çıktı tam olarak girdi olan şeydir: echo {1..14} | xxd -p | xxd -p -rçıktı üretir: 1 2 3 4 5 6 7 8 9 10 11 12 13 14\n - \nbuecho
Peter.O'dan

1
Bunun hexdump -v -e '/1 "%02X"'yerine de kullanabilirsiniz xxd.
dirkt

Yanıtlar:


15

İhtiyacınız olan şey -c seçeneğidir.

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

746869732069732061206c6f6e67206c696e6520616e64207878642077696c6c207072696e74206974206173206f6e65206c696e65

Belgelerden bazı bilgiler :

-c kömürleri | -cols cols satır başına sekizli biçimlendirir. Varsayılan 16 (-i: 12, -ps: 30, -b: 6). En fazla 256.

Belgeler "c" parametresi için maksimum değerin 256 olduğunu söylüyor, ancak daha büyük değerler denedim ve işe yaradı. Bunu kontrol et:

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

Burada / dev / random'dan bir milyon bayt döktüm ve 2 milyon + 1 karakterlik bir dize alıyorum. / Dev / random'daki her bayt 2 karakterle gösterilir ve ek bayt son satırsonudur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.