"xxd"コマンドを出力と組み合わせる

次の16進ダンプがあります。

00000000: 2345 5854 5241 530a 0a31 2e20 746f 2061  #EXTRAS..1. to a
00000010: 6464 2075 7365 723a 2060 7375 646f 2075  dd user: `sudo u
00000020: 7365 7261 6464 205b 7573 6572 6e61 6d65  seradd [username
00000030: 5d60 2061 6e64 2074 6865 6e20 6073 7564  ]` and then `sud
00000040: 6f20 7061 7373 7764 205b 7573 6572 6e61  o passwd [userna
00000050: 6d65 5d60 2074 6f20 6164 6420 7061 7373  me]` to add pass
00000060: 776f 7264 0a0a 312e 2074 6865 2063 6f6d  word..1. the com
00000070: 6d61 6e64 2061 626f 7665 2077 696c 6c20  mand above will 
00000080: 6e6f 7420 6164 6420 6120 686f 6d65 2064  not add a home d
00000090: 6972 6563 746f 7279 2066 6f72 2074 6865  irectory for the
000000a0: 2061 6464 6564 2075 7365 720a 0a31 2e20   added user..1. 
000000b0: 746f 2067 6976 6520 7468 6520 7573 6572  to give the user
000000c0: 2061 2068 6f6d 6520 6469 7265 6374 6f72   a home director
000000d0: 792c 2069 6e63 6c75 6465 2074 6865 2060  y, include the `
000000e0: 2d6d 6020 666c 6167 0a0a 0a              -m` flag...

vimはそれが235bだと言い、すべての文字数を数えるために私が書いた単純なコマンドは243文字があることを示しています:

xxd -ps extras.md | sed 's/\(..\)/\1\n/g' | wc -l

また、左側のメモリ列は「d0 + 11バイト、つまり219バイト」を占めることを示しています。私が正しく理解したら。

誰かが219、235、243を一緒に接続するのに役立ちますか?それとも私が間違っていると言ってください。

この方法も機能しますが、解決策を教えてください。

ベストアンサー1

16進ダンプは、0x00(0)から0xEA(234)までの文字を表示します。合計235文字になります。

また、コマンドは計算されxxd -ps extras.md | sed 's/\(..\)/\1\n/g'た8つの追加の空行(元の出力の終わり)を出力します。xxdwc -l

回避策:空でない行のみを計算してください。

xxd -ps extras.md | sed 's/\(..\)/\1\n/g' | grep -c .

おすすめ記事