首页
社区
课程
招聘
[求助]·请教一个问题,什么软件可以把一个目录里面的所有文件里面有某一16进制字符串进行替代。
发表于: 2024-11-12 20:52 1457

[求助]·请教一个问题,什么软件可以把一个目录里面的所有文件里面有某一16进制字符串进行替代。

2024-11-12 20:52
1457
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 222
活跃值: (1900)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
010edit,有多文件替换功能
2024-11-12 21:00
0
雪    币: 556
活跃值: (2389)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

sed命令可以达到你的目的,先写个脚本来遍历目录下所有的文件,然后用sed程序来替换文件中的内容,AI 写的Windows 脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
setlocal
 
REM 设置目录路径
set "directoryPath=%~dp0"
 
REM 列出目录下的所有文件
for %%f in ("%directoryPath%\*") do (
    REM 检查是否为文件
    if not %%~f == "" (
        REM 使用Git Bash中的sed命令替换十六进制字符串
        sed -i 's/\x11\x22\x33/\x99\x88\x77/g' '%%f'
    )
)
 
echo 替换完成。
endlocal

sed是一个 linux 上的命令,但也可以它的 Windows 版本:
https://github.com/mbuilov/sed-windows

2024-11-12 22:05
0
雪    币: 556
活跃值: (2389)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

在Linux环境中,你可以直接使用sed命令来替换文件中的内容。以下是一个简单的shell脚本,它使用sed命令来替换文件中的十六进制字符串。

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
# 设置目录路径
directoryPath=$1
# 列出目录下的所有文件
for file in "$directoryPath"/*; do
    # 检查是否为文件
    if [ -f "$file" ]; then
        # 假设我们要替换的十六进制字符串是 "11 22 33",替换为 "99 88 77"
        sed -i 's/\x11\x22\x33/\x99\x88\x77/g' "$file"
    fi
done
echo "替换完成。"

将上述代码保存为.sh文件,例如replace_hex_string_with_sed.sh,然后在命令行中运行它,并传递要处理的目录作为参数。例如:

1
2
chmod +x replace_hex_string_with_sed.sh
./replace_hex_string_with_sed.sh /path/to/directory

这个脚本会处理指定目录下的所有文件,使用sed命令将每个文件中的十六进制字符串"41 42 43 44"替换为"44 43 42 41"。
请注意,这个脚本假设十六进制字符串是连续的,并且每个字节之间有一个空格。如果十六进制字符串的格式不同,你可能需要调整sed命令中的正则表达式来匹配正确的模式。此外,这个脚本会修改所有文件的内容,所以在运行之前请确保备份重要文件。

2024-11-12 22:08
0
雪    币: 307
活跃值: (385)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢!
2024-11-13 13:37
0
游客
登录 | 注册 方可回帖
返回
//