改行なしのXXD出力


12

xxd出力に改行を印刷せず、ダンプを1つの連続した行にするように指示できますか?

[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
単にtr改行を削除するために使用することができます、例えば... | xxd -p | tr -d \\n
-don_crissti

必要なものによって異なりますが、便利なオプションの1つは、ポストクリプト/プレーンダンプ(またはそれに関するプレーンhexdump)xxdの逆-rの空白を無視-pすることです。例えば。次の行はで\necho {1..14} | xxd -p | xxd -p -r1 2 3 4 5 6 7 8 9 10 11 12 13 14\n\necho
折り返さ

1
hexdump -v -e '/1 "%02X"'代わりに使用することもできますxxd
dirkt

回答:


14

必要なのは-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)。最大256。

ドキュメントには、「c」パラメータの最大値は256であると書かれていますが、より大きな値を試してみましたが、うまくいきました。見てみな:

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

ここでは、/ dev / randomから100万バイトをダンプし、200万+ 1文字の文字列を取得します。/ dev / randomの各バイトは2文字で表され、追加のバイトは最後の改行です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.