使用命令:
xxd -b some_text
将输出二进制表示和原始文本:
000054c: 11101111 10100001 10110110 00010000 01011011 10000110 ....[.
0000552: 01111000 11001000 01010101 11000101 11101111 10101111 x.U...
0000558: 10010111 11101010 00011001 01010100 10101010 10001110 ...T..
如何让实用程序只输出二进制文件?
答案 0 :(得分:0)
该组合未在其manual page中列出。但是,您可以使用awk / sed / perl(您的选择)过滤结果。对于给定的示例,sed就足够了:
xxd -b some_text | sed -e 's/^[^:]*:[[:space:]][[:space:]]*//' -e 's/[[:space:]][[:space:]]*.\{6,6\}$//'
那是:
在第一个“-e”选项中,通过第一个“:”删除所有内容,然后删除空格。
在第二个“-e”选项中,从至少一个空格开始
您可以将“[[:space:]] [[:space:]] *”替换为您想要匹配的空格数,但是虽然更详细,但字符类也更强大。 / p>
或者(因为whitespace是awk中的默认字段分隔符),可以通过awk传递:
xxd -b some_text | awk '{ printf "%s %s %s %s %s %s\n", $2, $3, $4, $5, $6, $7 }'
虽然作为一项规则,我使用最简单的工具。
答案 1 :(得分:0)
如果你只想要二进制文件,甚至不需要偏移量,你可以扩展Thomas Dickey的sed
一行代码来剥离偏移量:
xxd -b some_text | sed -e 's/^.*: //; s/[[:space:]][[:space:]]*.\{6,6\}$//'
答案 2 :(得分:0)
" XXD"不要采取" some_text"作为输入但是" infile" 使用' cut'更短的答案命令打印6个字段(2到7):
xxd -b some_file | cut -d\ -f2-7