在执行grep -a 5 "SEARCHSTRING" FILE.txt
时,grep
似乎可以将文件搜索结果实时打印到控制台,我觉得这很有用,也很酷。然而,当简单地执行grep "SEARCHSTRING" FILE.txt
或grep -i -n --color -C 5 "SEARCHSTRING" FILE.txt
时,我在处理文件时得到了通常的闪烁光标。
为什么在搜索文件时grep -a
会输出到控制台,以及如何在不使用-a
选项的情况下复制该行为?
发布于 2017-02-27 17:38:18
请注意,您提出的关于grep
的多个问题与编程无关,而且您似乎没有仔细阅读grep手册。从man grep
我看到:
-a, --text
Process a binary file as if it were text; this is equivalent to
the --binary-files=text option.
因此,它不会重定向输出,默认设置仍然是console。据我所知,没有延迟输出的选项。
补充说明:grep -a 5 "SEARCHSTRING" FILE.txt
意味着以二进制模式打开输入,并在文件SEARCHSTRING
和File.txt
中搜索字符串5
;因此,您将拥有比grep "SEARCHSTRING" FILE.txt
更多的匹配项,而不是在File.txt
中请求SEARCHSTRING
。这可能是你看到即时输出和延迟输出的原因吗?在第一种情况下,你可能有更多的匹配。您可以使用以下命令进行验证
grep -a 5 "SEARCHSTRING" FILE.txt |wc -l
grep -i "SEARCHSTRING" FILE.txt |wc -l
并比较匹配的数量。wc -l
计算行数
https://stackoverflow.com/questions/42476543
复制相似问题