grep是逐行还是整个文件处理?

时间:2013-06-20 14:27:25

标签: unix grep

随着我对UNIX命令的了解越来越多,我开始在工作中使用sed。 Sed的设计逐行读取文件,并分别在每一行上执行命令。

grep如何处理文件?我已经尝试了各种谷歌搜索方式“grep逐行处理”并没有真正具体的显示。

3 个答案:

答案 0 :(得分:5)

来自Why GNU grep is fast

  

此外,GNU grep AVOIDS突破了输入线。寻找新行会使grep减慢几倍,因为要查找换行符,必须查看每个字节!

然后

  
      
  • 在找到匹配项之前,请不要在输入中查找换行符。
  •   

答案 1 :(得分:1)

编辑: 我会纠正自己。它既不是逐行也不是完整文件,它是放在缓冲区中的数据块。

详情请见http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html

答案 2 :(得分:0)

传递给grep的正则表达式没有任何指定换行符的方法(尽管您可以指定与行的开头或结尾匹配)。

所以看起来它是逐行工作的,尽管实际上它可能不会以不同的方式对待其他字符。