随着我对 UNIX 命令的了解越来越多,我开始在工作中使用 sed。Sed 的设计是逐行读取文件,并在每一行单独执行命令。
grep 如何处理文件?我尝试了各种谷歌搜索“是否 grep 逐行处理”的方法,但没有真正具体的出现。
此外,GNU grep 避免将输入分成几行。寻找换行符会使 grep 减慢几倍,因为要找到换行符,它必须查看每个字节!
进而
- 在找到匹配项之前,不要在输入中查找换行符。
编辑:我会纠正自己。它既不是逐行也不是完整文件,它就放置在缓冲区中的数据块而言。
更多细节在这里http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html
您传递给 grep 的正则表达式没有任何指定换行符的方式(尽管您可以指定匹配行的开头或结尾)。
所以它似乎逐行工作,即使实际上它可能不会以与其他字符不同的方式处理行尾。