Czy mogę powiedzieć, xxd
aby nie drukować żadnych podziałów linii na wyjściu i mieć zrzut jako jedną linię ciągłą?
[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
tr
do usunięcia nowego wiersza, np.... | xxd -p | tr -d \\n
xxd
jest to, że ignoruje białe znaki na odwrocie zrzutu-r
postscript / zwykłego-p
zrzutu (lub dowolnego zwykłego zrzutu heksadecyutycznego w tym przypadku). na przykład. Następujący wiersz jest zawijany\n
, ale odwrócone wyjście jest dokładnie tym, co zostało wprowadzone:echo {1..14} | xxd -p | xxd -p -r
wytwarza wyjście:1 2 3 4 5 6 7 8 9 10 11 12 13 14\n
-\n
pochodzi zecho
hexdump -v -e '/1 "%02X"'
zamiastxxd
.Odpowiedzi:
Potrzebna jest opcja -c.
Oto kilka informacji z dokumentacji :
Dokumentacja mówi, że maksymalna wartość parametru „c” wynosi 256, ale próbowałem większych wartości i zadziałało. Sprawdź to:
Zrzucam milion bajtów z / dev / random i otrzymuję ciąg 2 milionów + 1 znaków. Każdy bajt z / dev / random jest reprezentowany przez 2 znaki, a dodatkowy bajt jest ostatnim znakiem nowej linii.
źródło