将 hexdump 转换回文本的命令
Command to convert hexdump back to text
我正在使用 Catfish 查找包含特定文本的文件。找到的一些文件而不是纯文本包含一些看起来像十六进制转储的东西:
3c3f 7068 700a 0a66 756e 6374 696f 6e20
7573 6572 5f65 7869 7374 7328 2475 6e29
207b 0a09 7265 7475 726e 2074 7275 653b
0a7d 0a0a 0a3f 3e00 0000 0000 0000 0000
即总是 8 列,每行包含 16 个字节。上面第一行应该是
是否有unhex文件并打印内容的命令?
与bash:
for block in $(cat file); do
[[ $block =~ (..)(..) ]] && echo -en "\x${BASH_REMATCH[1]}\x${BASH_REMATCH[2]}"
done
输出:
<?php
function user_exists($un) {
return true;
}
?>
将 xxd
与还原选项一起使用 -r
xxd -p -r file.txt
给出了
的结果
<?php
function user_exists($un) {
return true;
}
?>
echo -e "$(sed -r 's@\s*([a-f0-9][a-f0-9])\s*@\U@g' < test.txt | tr -d '\n')"
sed 正则表达式从匹配的开头和结尾捕获两个十六进制字符和零个或多个空格,并将其转换为 unicode 字符,删除空格(g 是全局排序,-r启用扩展正则表达式)。
tr 删除文件中存在的换行符
echo -e 将 unicode 转换为 ascii 字符
我正在使用 Catfish 查找包含特定文本的文件。找到的一些文件而不是纯文本包含一些看起来像十六进制转储的东西:
3c3f 7068 700a 0a66 756e 6374 696f 6e20
7573 6572 5f65 7869 7374 7328 2475 6e29
207b 0a09 7265 7475 726e 2074 7275 653b
0a7d 0a0a 0a3f 3e00 0000 0000 0000 0000
即总是 8 列,每行包含 16 个字节。上面第一行应该是
是否有unhex文件并打印内容的命令?
与bash:
for block in $(cat file); do
[[ $block =~ (..)(..) ]] && echo -en "\x${BASH_REMATCH[1]}\x${BASH_REMATCH[2]}"
done
输出:
<?php
function user_exists($un) {
return true;
}
?>
将 xxd
与还原选项一起使用 -r
xxd -p -r file.txt
给出了
的结果<?php
function user_exists($un) {
return true;
}
?>
echo -e "$(sed -r 's@\s*([a-f0-9][a-f0-9])\s*@\U@g' < test.txt | tr -d '\n')"
sed 正则表达式从匹配的开头和结尾捕获两个十六进制字符和零个或多个空格,并将其转换为 unicode 字符,删除空格(g 是全局排序,-r启用扩展正则表达式)。
tr 删除文件中存在的换行符
echo -e 将 unicode 转换为 ascii 字符