6

タイトルにある通り、例を以下に示します。

$ cat test.txt 
ABCD
$ hd test.txt 
00000000  41 42 43 44 0a                                    |ABCD.|
00000005

私の望ましい出力は次のようになります。

41
42
43
44

これはsed、awkなどで可能であることは知っていますが、大きなファイルの場合は非常に遅くなる可能性があります. 「hexdump」のフォーマット文字列または「od」のパラメーターの組み合わせを考えました。助けていただけませんか?

4

2 に答える 2

12
$ echo -n 'ABCD' | hexdump -v -e '/1 "%02x\n"'
41
42
43
44
0a

改行の最後に出力したくない場合は0a、最初にファイルから改行を取り除くことをお勧めします。

于 2014-02-11T21:53:46.717 に答える
6
od -An -vtx1 -w1 test.txt | cut -c2-

改行が必要ない場合:

od -An -vtx1 -w1 test.txt | cut -c2- | fgrep -v 0a

odオプションの意味:

  • -An: アドレス: いいえ
  • -v*: 冗長、つまり、行を繰り返す代わりにa を書かない
  • -tx1: 出力タイプ: 16 進数、1 バイト (-tx1zhdような出力に使用)
  • -w1: 最大幅: 1

良い点odの 1 つは、どの*xシステムでも使用できることです。

于 2014-02-11T21:51:51.310 に答える