Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix grep是逐行处理还是处理整个文件?_Unix_Grep - Fatal编程技术网

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

Unix grep是逐行处理还是处理整个文件?,unix,grep,Unix,Grep,随着我对UNIX命令的了解越来越多,我开始在工作中使用sed。Sed的设计逐行读取一个文件,并分别在每行上执行命令 grep如何处理文件?我尝试过各种各样的谷歌搜索方式“DosGrep一行一行地处理”,但没有真正具体的结果 编辑: 我会改正的。它既不是逐行的,也不是完整的文件,它是以放入缓冲区的数据块为单位的 有关更多详细信息,请参见: 此外,GNUGREP避免了将输入分成行。寻找换行符会使grep的速度降低几倍,因为要找到换行符,它必须查看每个字节 然后 在找到匹配项之前,不要在输入中查找换

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

grep如何处理文件?我尝试过各种各样的谷歌搜索方式“DosGrep一行一行地处理”,但没有真正具体的结果

编辑: 我会改正的。它既不是逐行的,也不是完整的文件,它是以放入缓冲区的数据块为单位的

有关更多详细信息,请参见:

此外,GNUGREP避免了将输入分成行。寻找换行符会使grep的速度降低几倍,因为要找到换行符,它必须查看每个字节

然后

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

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


因此,它似乎可以一行一行地工作,尽管实际上它对行尾的处理可能与其他字符没有区别。

grep本身不会处理任何事情。grep用于按模式进行过滤。+1。要逐行处理输入,请使用选项
--line buffered
。然而,手册上说:
在输出上使用行缓冲。这可能会导致性能下降。
正是我想要的答案!