UltraEDIt只能ASCII文本,不能16进制查询。并且替换。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
用sed命令可以达到你的目的,先写个脚本来遍历目录下所有的文件,然后用sed程序来替换文件中的内容,AI 写的Windows 脚本如下:
sed
Windows
@
echo
off
setlocal
REM 设置目录路径
set
"directoryPath=%~dp0"
REM 列出目录下的所有文件
for
%%f
in
(
"%directoryPath%\*"
)
do
REM 检查是否为文件
if
not %%~f ==
""
REM 使用Git Bash中的
命令替换十六进制字符串
-i
's/\x11\x22\x33/\x99\x88\x77/g'
'%%f'
替换完成。
endlocal
sed是一个 linux 上的命令,但也可以它的 Windows 版本:f91K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0j5Y4g2A6L8r3!0$3i4K6u0r3M7$3g2V1i4K6u0V1N6$3W2F1k6r3!0%4M7H3`.`.
linux
在Linux环境中,你可以直接使用sed命令来替换文件中的内容。以下是一个简单的shell脚本,它使用sed命令来替换文件中的十六进制字符串。
#!/bin/bash
# 设置目录路径
directoryPath=$1
# 列出目录下的所有文件
file
"$directoryPath"
/*;
# 检查是否为文件
[ -f
"$file"
];
then
# 假设我们要替换的十六进制字符串是 "11 22 33",替换为 "99 88 77"
fi
done
"替换完成。"
将上述代码保存为.sh文件,例如replace_hex_string_with_sed.sh,然后在命令行中运行它,并传递要处理的目录作为参数。例如:
.sh
replace_hex_string_with_sed.sh
chmod
+x replace_hex_string_with_sed.sh
.
/replace_hex_string_with_sed
/path/to/directory
这个脚本会处理指定目录下的所有文件,使用sed命令将每个文件中的十六进制字符串"41 42 43 44"替换为"44 43 42 41"。请注意,这个脚本假设十六进制字符串是连续的,并且每个字节之间有一个空格。如果十六进制字符串的格式不同,你可能需要调整sed命令中的正则表达式来匹配正确的模式。此外,这个脚本会修改所有文件的内容,所以在运行之前请确保备份重要文件。