从一个大的TEXT文件中提取一个短语列表,并用每个短语写一个单个TXT文件(也是该文件的标题)

时间:2013-11-06 21:53:50

标签: batch-file

我有一个术语列表,我有大文本文件,其中包含一些术语。我的任务是为与原始文本文件在同一目录中的每个术语提供一个文本文件。

BEFORE
listofterms.txt(苹果核心,桃子,烤牛肉,紫菜包裹的东西等等) LargeFileOfFoodWords.txt(范围为20-20,000条单行非重复文本)

AFTER
apple cores.txt,peaches.txt,roast beef.txt,包含在nori.txt中的东西(等等......)
LargeFileOfFoodWords.txt(原始文件,未更改 - 或者如果可能,提取所有'listofterms')

使用以下bat文件,我可以使用单个单词执行此操作。但是,生成的文件包含批处理文件所在目录中的所有文件的路径。连续搜索还包括apple cores.txt,peaches.txt等...

所以我有一些元素在工作,需要调整以下内容:

  • 不搜索任何文件,而是搜索我选择的文件
  • 仅包含无元数据的提取文本
  • 继续搜索和撰写文件,直至到达搜索字词列表的底部

如果你想自己测试,这个脚本将适用于任何.txt文件,并为你提供“SearchTerm.txt”。

@echo off
set RESULT_FILE="result.txt"
set /p "buck1=Enter Bucket Word or Phrase to find:"
pushd %~p0type NUL > %RESULT_FILE%.tmp
for /f "delims=" %%a in ('dir /s/-b/l *.txt') 
do (for /f %%c in ('find /i /c "%buck1%" "%%a"') 
do (for /f "tokens=*" %%f in ('find /i "%buck1%" "%%a"') 
do if %%c neq 0 echo :`%%f))>>"%RESULT_FILE%".tmp
move %RESULT_FILE%.tmp %buck1%.txt >nul 2>&1
popd

1 个答案:

答案 0 :(得分:2)

这可能适合你:

for /f "delims=" %%a in ('findstr /xg:listofterms.txt LargeFileOfFoodWords.txt') do (type nul>"%%~a.txt"&echo(%%~a>"result.txt")

如需更多帮助,请输入help forhelp findstr