Bash格式输出以十六进制字节表示

时间:2015-07-02 13:47:01

标签: bash

假设我在stdout中输出如下:

e28f6001
e12fff16
2210
4679
df01
6c656873

如何在bash中管道这个,这样我就可以为每个字节附加\x。我希望输出像这样:

\xe2\x8f\x60\x01\xe1\x2f\xff\x16\x22\x10 ...

1 个答案:

答案 0 :(得分:1)

tr -d '\n' < File | sed 's/.\{2\}/\\x&/g'

首先删除换行符。然后将每2个字符(.\{2\})替换为\x,后跟2个字符(& =&gt;匹配的匹配模式,即2个字符)。