Aar*_*ron 2 linux ascii hexadecimal
注意: - 以字节为单位维护文件偏移量列表
文件内容:
00000000 0054 0065 0073 0074 0020 0054 0065 0073
00000008 0074 0020 0054 0065 0073 0074 0020 0054
00000016 0065 0073 0074 0020 0054 0065 0073 0074
00000024 0020 0054 0065 0073 0074 0020 0054 0065
00000032 0073 0074 0020 0054 0065 0073 0074 0020
00000040 0054 0065 0073 0074 000a 0054 0065 0073
00000048 0074 0020 0054 0065 0073 0074 0020 0054
00000056 0065 0073 0074 0020 0054 0065 0073 0074
00000064 0020 0054 0065 0073 0074 0020 0054 0065
Run Code Online (Sandbox Code Playgroud)
预期输出
00000016 0065 0073 0074 0020 0054 0065 0073 0074 |est Test Test Te|
00000032 0073 0074 0020 0054 0065 0073 0074 0020 |st Test Test.Tes|
00000048 0074 0020 0054 0065 0073 0074 0020 0054 |t Test Test Test|
00000064 0020 0054 0065 0073 0074 0020 0054 0065 | Test Test Test |
Run Code Online (Sandbox Code Playgroud)
您的输入文件看起来像是使用以下内容生成的:
hexdump -e '"%08_ad " 8/1 "%04x "' -e '"" 0/0 "" "\n"' original_file
Run Code Online (Sandbox Code Playgroud)
不幸的是,xxd -r
无法处理小数点偏移。
这是一个简短的 Gnu AWK 程序,可为您提供所需的输出:
gawk '{printf "%s |", $0; for (f=2; f<=9; f++) { c = strtonum("0x" $f); if (c >= 32 && c <= 126) printf "%c",c; else printf "."}; printf "|\n"}' input_file
Run Code Online (Sandbox Code Playgroud)
如果您使用 AWK 以外的 AWK gawk
,则可以在此处使用该strtonum()
函数。
这是与上述gawk
脚本执行相同操作的另一种方法:
cut -c 11- input_file | sed 's/\<00//g' | xxd -r -p | hexdump -e '"%08_ad " 8/1 "%04x " ""' -e '" |" 8/1 "%_p" "|\n"'
Run Code Online (Sandbox Code Playgroud)
相反,如果您想将输入文件转换为文本:
cut -c 11- input_file | xxd -r -p
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
58538 次 |
最近记录: |