用findstr应该会奇慢无比:- @echo off
- md results 2>nul
- for /f "delims=" %%a in ('dir /b *.txt') do (
- cd.>"results\_%%a"
- for %%i in (123 124 125 134 135 145 234 235 245 345) do (
- findstr "%%i" "%%a">nul&&echo,%%i
- )>>"results\_%%a"
- )
复制代码 用法:将以上代码保存为test.bat,放到该目录执行即可。
用awk应该会好点儿:- BEGIN{
- split("123 124 125 134 135 145 234 235 245 345",numbers)
- for(number in numbers) x[numbers[number]]=""
- }
- FNR==1{
- if(last!="") close(last)
- last="results\_" FILENAME
- }
- {
- for(i=1;i<=NF;i++)
- if($i in x) print $i>last
- }
复制代码 用法,将以上代码保存为test.awk,下载gawk.exe,编写test.bat如下:- @echo off
- md results 2>nul
- gawk -f test.awk *.txt
复制代码 然后将三个文件放到该目录,执行bat即可。 |