grep从常量时间(文件大小独立)的非常大的文件中的第n个字符串?

时间:2016-08-01 19:36:52

标签: regex bash sed grep large-files

在linux中是否有像grep(sed / awk)这样的工具从一个非常大的文件中找到第n个字符串(正则表达式)?另外,我想找到文件中搜索字符串的出现次数。请记住,文件非常大(> 2 GB)。

2 个答案:

答案 0 :(得分:0)

  

我想找到搜索字符串的出现次数   在文件中

如果搜索字符串不能包含空格,则下面的内容可能就足够了:

awk -v RS=" " '/string/{i++}END{print "string count : " i}' file

但它的速度有多快取决于系统上的可用RAM。

答案 1 :(得分:0)

Grep解决方案:

["a"]

file.txt的:

  

一两一

     

2

     

一个

     

两个

     

两个

正则表达式一行

的行

grep -on regexp < file.txt

  

1:一个

     

1:一个

     

3:一个

     

5:一个

发生了多少次:

grep -on one < test.txt

  

4

第N次出现的行:

grep -on one < test.txt | wc -l

  

一两一

更新:现在,解决方案不会使用grep -m1 one < test.txt | tail -n1。感谢@tripleee的提示。