如何使用hexdump同时在不同的演示文稿中显示字符

时间:2016-04-28 09:34:53

标签: linux file shell hexdump

我正在计算整个目录的文件和目录名的字符数。

find . -printf "%f/n" | sed 's/./&\n/g' | sort | uniq -c 

输出:

    234 _
    162 /
    341 .
    342 0
    156 1
    217 2
     99 3
    ...

但我还需要在找到的字符的同时显示十进制,十六进制正常表示的列表:

示例:

066 0x42 'A'
...
090 0x5A 'Z' 

我尝试过使用不同格式选项的hexdump,但这对我没用。

可以使用 hexdump 吗?

3 个答案:

答案 0 :(得分:1)

这是我的答案之后的实施:

find . -printf "%f\n" | sed "s/./&\n/g" | sort | uniq  | tr -d '\n' | hexdump -v -e '/1 "%03d "' -e '/1 "0x%02X "' -e '/1 "<%c>\n"'

输出:

060 0x3C <<>
062 0x3E <>>
058 0x3A <:>
063 0x3F <?>
046 0x2E <.>
097 0x61 <a>
098 0x62 <b>
099 0x63 <c>
100 0x64 <d>
101 0x65 <e>
069 0x45 <E>
102 0x66 <f>
104 0x68 <h>
072 0x48 <H>
105 0x69 <i>
108 0x6C <l>
109 0x6D <m>
110 0x6E <n>
078 0x4E <N>
111 0x6F <o>
195 0xC3 <�>
182 0xB6 <�>
...

答案 1 :(得分:0)

  

可以用hexdump完成吗?

是:

hexdump

请参阅r.now().sub(900)手册页末尾的示例。

答案 2 :(得分:0)

hexdump / hd的替代方法是xxd。。xxd可以隐蔽地返回十六进制并返回。但是我用32位数据警告您,并且XOR警告我发现我得到46而不是41的错误。另外还有大写和小写十六进制的选项,默认为BIG ENDIAN,但是有LITTLE ENDIAN的选项,记住输出是char字符串,而不是等效的十六进制。

我认为您正在寻找hexdump -C命令,请参见man hexdumpman xxd

PS> @ Dummy00001十六进制转储“ / 1”有什么作用?如果我省略它,则得到相同的结果 @ebart为什么sed脚本替换操作中会有一个'g'字符,所以在行(&)末尾用\ n替换每个字符:“ s /./& \ n / g”

来自下面的链接: X / X格式称为计数说明符,因此2/4表示2个4字节(32位)值的实例。 %08x格式表示将值输出为带有前导零的8位十六进制数字。

此命令不是您的问题的答案,但显示了十六进制转储格式的完成方式: hexdump -s 446 -n 64 -v -e'1/1“%02x” 3/1“%3d” 1/1“%02x” 3/1“%3d” 2/4“