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