2つの形式のテキストでファイルの内容を表示するために使用されます。そしてSE用の他の投稿のバイナリデータASCIIレンダリング出力を表示するか出力を表示するかを決定することはできませんxxd
。
中間経路としてHex Dumpを考えました。する改行文字を尊重してください。
(その他)例:
00000000: 636f 6d6d 6974 2031 3933 0074 7265 6520 コミット 193.tree 00000010:3331 3439 3530 3736 3263 6561 3232 3364 314950762cea223d 00000020:3230 6233 3931 6235 3162 3336 3463 6134 20b391b51b364ca4 00000030:3165 3636 3234 39310a61 7574686f 7220 1e662491。作家 00000040: 4578 616d 706c 6520 5573 6572 203c 6578 ユーザー例<ex 00000050:616d 706c 6575 7365 7240 7374 6163 6b6f十分なユーザー@stacko 00000060:7665 7266 6c6f 772e 636f 6d3e 2031 3439 verflow.com> 149 00000070:3831 3236 3633 3320 2b30 3230 300a636f 8126633 +0200。一般的な 00000080: 6d6d 6974 7465 7220 4578 616d 706c 6520 mmitter はい 00000090:5573 6572 203c 6578 616d 706c 6575 7365ユーザー<使用例 000000a0:7240 7374 6163 6b6f 7665 7266 6c6f 772e r@stackoverflow。 000000b0: 636f 6d3e 2031 3439 3831 3236 3633 3320 com> 1498126633 000000c0: 2b30 3230 300a 0a69 6e69 740a +0200..内部に。
なります
00000000: 636f 6d6d 6974 2031 3933 0074 7265 6520 コミット 193.tree 00000010:3331 3439 3530 3736 3263 6561 3232 3364 314950762cea223d 00000020:3230 6233 3931 6235 3162 3336 3463 6134 20b391b51b364ca4 00000030:3165 3636 3234 39310a 1e662491。 00000030: 61 7574 686f 7220 作成者 00000040: 4578 616d 706c 6520 5573 6572 203c 6578 ユーザー例<ex 00000050:616d 706c 6575 7365 7240 7374 6163 6b6f十分なユーザー@stacko 00000060:7665 7266 6c6f 772e 636f 6d3e 2031 3439 verflow.com> 149 00000070:3831 3236 3633 3320 2b30 3230 300a 8126633+0200。 00000070: 636f会社 00000080: 6d6d 6974 7465 7220 4578 616d 706c 6520 mmitter はい 00000090:5573 6572 203c 6578 616d 706c 6575 7365ユーザー<使用例 000000a0:7240 7374 6163 6b6f 7665 7266 6c6f 772e r@stackoverflow。 000000b0: 636f 6d3e 2031 3439 3831 3236 3633 3320 com> 1498126633 000000c0: 2b30 3230 300a +0200。 000000c0: 0a 。 000000c0: 69 6e69 740a 内部に。
または
00000000: 636f 6d6d 6974 2031 3933 0074 7265 6520 コミット 193.tree 00000010:3331 3439 3530 3736 3263 6561 3232 3364 314950762cea223d 00000020:3230 6233 3931 6235 3162 3336 3463 6134 20b391b51b364ca4 00000030:3165 3636 3234 39310a 1e662491。 00000030: 61 7574 686f 7220 作成者 00000040: 4578 616d 706c 6520 5573 6572 203c 6578 ユーザー例<ex 00000050:616d 706c 6575 7365 7240 7374 6163 6b6f十分なユーザー@stacko 00000060:7665 7266 6c6f 772e 636f 6d3e 2031 3439 verflow.com> 149 00000070:3831 3236 3633 3320 2b30 3230 300a 8126633+0200。 00000070: 636f会社 00000080: 6d6d 6974 7465 7220 4578 616d 706c 6520 mmitter はい 00000090:5573 6572 203c 6578 616d 706c 6575 7365ユーザー<使用例 000000a0:7240 7374 6163 6b6f 7665 7266 6c6f 772e r@stackoverflow。 000000b0: 636f 6d3e 2031 3439 3831 3236 3633 3320 com> 1498126633 000000c0: 2b30 3230 300a +0200。 000000c0: 0a 。 000000c0: 69 6e69 740a 内部に。
または
00000000: 636f 6d6d 6974 2031 3933 0074 7265 6520 コミット 193.tree 00000010:3331 3439 3530 3736 3263 6561 3232 3364 314950762cea223d 00000020:3230 6233 3931 6235 3162 3336 3463 6134 20b391b51b364ca4 00000030:3165 3636 3234 39310a 1e662491。 61 7574 686f 7220 作成者 00000040: 4578 616d 706c 6520 5573 6572 203c 6578 ユーザー例<ex 00000050:616d 706c 6575 7365 7240 7374 6163 6b6f十分なユーザー@stacko 00000060:7665 7266 6c6f 772e 636f 6d3e 2031 3439 verflow.com> 149 00000070:3831 3236 3633 3320 2b30 3230 300a 8126633+0200。 636f会社 00000080: 6d6d 6974 7465 7220 4578 616d 706c 6520 mmitter はい 00000090:5573 6572 203c 6578 616d 706c 6575 7365ユーザー<使用例 000000a0:7240 7374 6163 6b6f 7665 7266 6c6f 772e r@stackoverflow。 000000b0: 636f 6d3e 2031 3439 3831 3236 3633 3320 com> 1498126633 000000c0: 2b30 3230 300a +0200。 0a 。 69 6e69 740a 内部に。
または類似
答え1
まさにあなたが求めるものではありませんが、かなり近いです。
ファイルにヌルバイト(値0x00)があるため、状況がより複雑になります。対応するバイト値が入力にない場合、このバイトをDEL(値が0x7Fのバイト)に変更できるとします。
これは tr を使用して行われます。
$ cat infile | tr '\00' '\177'
xxd を使用してファイルを処理した後、変更を元に戻すことができます。
次のスクリプトを実行してください。
#!/bin/bash
while IFS=$'\n' read line; do
length=$((${#line}+1))
{
dd if=/dev/zero bs=1 count=$((position%16)) 2>/dev/null;
echo "$line";
} |
tr '\177' '\0' |
xxd -o "$((16*(position/16)))" -l "$((length+position%16))"
echo
(( position=position+length ))
done < <(cat infile | tr '\0' '\177')
取得するには:
$ ./so
00000000: 636f 6d6d 6974 2031 3933 0074 7265 6520 commit 193.tree
00000010: 3331 3439 3530 3736 3263 6561 3232 3364 314950762cea223d
00000020: 3230 6233 3931 6235 3162 3336 3463 6134 20b391b51b364ca4
00000030: 3165 3636 3234 3931 0a 1e662491.
00000030: 0000 0000 0000 0000 0061 7574 686f 7220 .........author
00000040: 4578 616d 706c 6520 5573 6572 203c 6578 Example User <ex
00000050: 616d 706c 6575 7365 7240 7374 6163 6b6f ampleuser@stacko
00000060: 7665 7266 6c6f 772e 636f 6d3e 2031 3439 verflow.com> 149
00000070: 3831 3236 3633 3320 2b30 3230 300a 8126633 +0200.
00000070: 0000 0000 0000 0000 0000 0000 0000 636f ..............co
00000080: 6d6d 6974 7465 7220 4578 616d 706c 6520 mmitter Example
00000090: 5573 6572 203c 6578 616d 706c 6575 7365 User <exampleuse
000000a0: 7240 7374 6163 6b6f 7665 7266 6c6f 772e r@stackoverflow.
000000b0: 636f 6d3e 2031 3439 3831 3236 3633 3320 com> 1498126633
000000c0: 2b30 3230 300a +0200.
000000c0: 0000 0000 0000 0a .......
000000c0: 0000 0000 0000 0069 6e69 740a .......init.
あなたが要求したものとまったく一致するわけではありませんが(ゼロが多く追加されたため)、アイデアを表現するのに十分近いと思います。
0なしで出力したいがバイト位置の数が16の倍数でない場合は、スクリプトを要求してください。