Grep:如何打印匹配的行和模式(使用模式文件)?

时间:2013-09-07 00:46:09

标签: regex grep cygwin

  1. 我正在使用cygwin。
  2. 我正在浏览目录中的多个文件。
  3. 我正在从文件中提取正则表达式模式。
  4. 我正在将结果写入文件。
  5. 我希望每个结果行也包含匹配的模式。
  6. 目前,我正在使用的命令从上面实现了1-4。 grep -E -i -f c:\ patterns \ patterns.txt c:\ dir \ * .csv> C:\结果\ results.csv

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

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

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

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

    如何获取所需数据?

    谢谢, 乍得

1 个答案:

答案 0 :(得分:0)

我是根据匹配的行号用 wo 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