sorting - grep 并使用模式文件进行排序

标签 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
)

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

还有更好的解决方案吗?

谢谢

最佳答案

我看到你在使用 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/

相关文章:

javascript - 将 2 个模型与 1 个模型传递给 Backbone 比较器并进行字母数字排序

c - 使用指针进行快速排序

batch-file - 是否可以知道 for 循环内的当前循环索引?

windows - "delims=#+#"- 多于 1 个字符作为分隔符

MySql 排序并发症

arrays - 如果使用 IntroSort 算法,Swift Array.sort() 如何比元组更快地对整数进行排序? Swift 对整数的排序方式不同吗?

windows - 批处理文件暂停需要两次按键才能关闭

java - Java 8.0 的 MaxPermSize 解决方法

android - 如何从命令行自动接受 android 库许可证?

vba - 通过提供路径参数从 Shell 运行 Excel VBA/宏