我正在寻找一个脚本(批处理文件),它可以从一个文件中找到另一个文件中的文本,并在找到该文本时报告。
例如:
文件 1将保存一串搜索字符串。
find this
find that
find me
find anything
文件 2将是一个.sql
文件(我们正在搜索的文件)
文件 3可能会保存找到的搜索字符串。
任何帮助都将不胜感激,因为我已经寻找解决这个问题的方法很长时间了。
答案1
听起来你想要一些像for
循环一样的东西。
像这样:
for STRING in `cat file1`
do
grep $STRING file2 >> file3
done
它的作用是输入文件 1 的内容。对于该文件中的每一行,它都会在文件 2 中搜索该字符串,并将结果输出到文件 3。
答案2
哎呀,忘了添加代码了。
type nul > results.txt
call :ReadFile < searchtext.txt
goto :EOF
:ReadFile
set /P line=
echo %line%
if "%line%" neq "end" goto FindText
goto EOF
:FindText
findstr /c "%line%" file.txt
if %errorlevel% equ 1 goto notfound
echo %line% - found >>results.txt
goto ReadFile
:notfound
echo %line% - notfound >>results.txt
goto readFile
:EOF
exit /B
解释:
results.txt 保存搜索结果 searchtext.txt 保存搜索词,以单词 end 结尾(根据情况更改) file.txt 是您要搜索的文件
此代码将搜索的文本以及找到或未找到的结果输出到 results.txt 文件中。
希望这能对在这个领域寻求帮助的人有所帮助。