温馨提示×

linux hexdump支持过滤特定字节吗

小樊
81
2024-12-30 09:49:04
栏目: 智能运维

Linux的hexdump命令本身不支持直接过滤特定字节

echo -n "Hello, World!" | hexdump -C | grep -o -E '0x[0-9a-fA-F]+' | xargs -I {} sh -c 'echo "0x{}" | xxd -r -p'

这个命令的解释如下:

  1. echo -n "Hello, World!":输出字符串"Hello, World!",不包括换行符。
  2. hexdump -C:以十六进制格式输出字符串,并使用逗号分隔每个字节。
  3. grep -o -E '0x[0-9a-fA-F]+':使用正则表达式过滤出以"0x"开头的十六进制数。
  4. xargs -I {} sh -c 'echo "0x{}" | xxd -r -p':将过滤出的十六进制数传递给xxd命令,将其转换回原始字符串。

这个命令会输出"Hello, World!“中的每个字节对应的十六进制表示。如果你需要过滤特定的字节,可以在grep命令中使用更精确的正则表达式。例如,如果你想过滤出所有的"0x48”(对应ASCII字符’H’),可以使用以下命令:

echo -n "Hello, World!" | hexdump -C | grep -o -E '0x48' | xargs -I {} sh -c 'echo "0x{}" | xxd -r -p'

0