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 版本:https://github.com/mbuilov/sed-windows
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命令中的正则表达式来匹配正确的模式。此外,这个脚本会修改所有文件的内容,所以在运行之前请确保备份重要文件。