0
  1. 我正在使用cygwin。
  2. 我正在搜索目录中的多个文件。
  3. 我正在从文件中提取正则表达式模式。
  4. 我正在将结果写入文件。
  5. 我希望每个结果行也包含匹配的模式。

目前,我使用的命令从上面实现了 1-4。grep -E -i -fc:\patterns\patterns.txt c:\dir\*.csv > c:\results\results.csv

我知道,如果我添加 -o 参数,它只会给我匹配模式,并且从那里我可以匹配此输出和不使用 -o 的输出的行号。但是 -o 似乎需要更长的时间。

模式文件本身超过 5,000 行。我正在搜索的文件超过一百万行。

示例输入: https ://www.dropbox.com/s/axltx3wcj9ina32/SampleInputFiles.zip

所需输出示例: https ://www.dropbox.com/s/ko3dz4hzhnqg8pm/output.csv.zip

如何获取我需要的数据?

谢谢,乍得

4

1 回答 1

0

我用两个grep 和一个基于匹配行号的连接来完成它

grep -onf   /cygdrive/c/TEMP/exp_plain.txt  filelist.txt |sort -u > 1.txt

grep  -nf   /cygdrive/c/TEMP/exp_plain.txt  filelist.txt |sort -u > 2.txt

join  -t ":" 1.txt 2.txt
于 2018-04-11T08:47:06.557 回答