是否可以告诉“JREPL.bat”仅替换文本文件中“[AddReg]”的第二个匹配项? 我已经尝试了几天寻找解决方案,但失败了。
“JREPL.bat”命令/INC“3:7”没有帮助,因为行号会根据文本文件改变太多。
CALL ".\JREPL.bat" "\[AddReg\]" "[AddReg]\r\nNewLine." /XSEQ /M /F "test.txt" /O "test1.txt"
[AddReg]
1TEST.
2TEST.
3TEST.
[AddReg]
1TEST.
2TEST.
3TEST.
[AddReg]
1TEST.
2TEST.
3TEST.
据我所知,没有本地方法可以使用 JREPL.bat 来完成此操作。但是,如果您愿意使用自定义批处理脚本来完成此操作,则可以执行以下操作:
@echo off
setlocal enabledelayedexpansion
set "input_file=test.txt"
set "output_file=test1.txt"
set "search_string=[AddReg]"
set "replace_string=[AddReg]\r\nNewLine."
set "count=0"
(for /f "tokens=*" %%a in (%input_file%) do (
set "line=%%a"
if !count! lss 2 (
set "line=!line:%search_string%=%replace_string%!"
if not "!line!"=="%%a" (
set /a "count+=1"
)
)
echo !line!
)) > %output_file%
endlocal
脚本将忽略第一个匹配项,替换第二个匹配项,然后退出循环。