正如标题所说,这是一个例子:
$ cat test.txt
ABCD
$ hd test.txt
00000000 41 42 43 44 0a |ABCD.|
00000005
我想要的输出是:
41
42
43
44
我知道这可以用sed,awk和stuff来实现,但对于大文件来说这可能会非常慢。我想到了" hexdump"的格式字符串。或者" od"的参数组合。你能帮帮我吗?
答案 0 :(得分:10)
$ echo -n 'ABCD' | hexdump -v -e '/1 "%02x\n"'
41
42
43
44
0a
如果您不希望它在新行的末尾打印0a
,那么我建议先从文件中删除换行符。
答案 1 :(得分:6)
od -An -vtx1 -w1 test.txt | cut -c2-
如果您不想换行:
od -An -vtx1 -w1 test.txt | cut -c2- | fgrep -v 0a
od
选项的含义:
-An
:地址:否-v
:详细,即不写*
而不是重复行-tx1
:输出类型:十六进制,1个字节(对-tx1z
使用hd
- 类似输出)-w1
:最大宽度:1 关于od
的一个好处是它可以在任何*x
系统上使用。