使用模式文件进行grep和排序

时间:2014-07-30 09:48:15

标签: sorting batch-file cmd grep

我有两个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
)

但是当文件足够大时,这会在运行时花费太多时间。

有更好的解决方案吗?

由于

1 个答案:

答案 0 :(得分:2)

我看到你在cmd上了,但你在评论中说你的bash解决方案很好,

以下内容可能有效:

while read pat; do fgrep "${pat}" fulldb.txt >> output_sorted.txt; done < patterns.txt