我有两个 txt 文件:patterns.txt 和 fulldb.txt
我想输出 fulldb.txt 中的行,其中包含 Patterns.txt 中的一行,所以我这样做:
fgrep -f patterns.txt fulldb.txt > output.txt
这有效。
但现在我想让输出按照在patterns.txt 中找到的顺序进行排序。我能做到:
copy /y NUL output_sorted.txt > NUL
for /F "tokens=*" %%J in (patterns.txt) do (
fgrep "%%J" fulldb.txt >> output_sorted.txt
)
但是当文件足够大时,这在运行时会花费太多时间。
还有更好的解决方案吗?
谢谢
最佳答案
我看到你在使用 cmd,但你在评论中说 bash 解决方案对你来说没问题,
以下可能会起作用:
while read pat; do fgrep "${pat}" fulldb.txt >> output_sorted.txt; done < patterns.txt
关于sorting - grep 并使用模式文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25033698/