在执行grep -a 5 "SEARCHSTRING" FILE.txt
时,grep
似乎会实时打印文件到控制台的搜索,我发现它既有用又酷。但是,当简单地执行grep "SEARCHSTRING" FILE.txt
或grep -i -n --color -C 5 "SEARCHSTRING" FILE.txt
时,我会在处理文件时获得通常闪烁的光标。
为什么grep -a
在搜索文件时输出到控制台,如何在不使用-a
选项的情况下复制该行为?
答案 0 :(得分:1)
请注意,您关于grep
的多个问题与编程无关,而且您似乎还没有仔细阅读grep手册。
从man grep
我看到:
-a, --text
Process a binary file as if it were text; this is equivalent to
the --binary-files=text option.
所以它不是重定向输出,默认仍然是控制台。 我知道,没有选择会延迟输出。
附加说明:
grep -a 5 "SEARCHSTRING" FILE.txt
表示以二进制模式打开输入,并在文件5
和SEARCHSTRING
中搜索字符串File.txt
;因此,您要求的grep "SEARCHSTRING" FILE.txt
比SEARCHSTRING
更多,而File.txt
代替grep -a 5 "SEARCHSTRING" FILE.txt |wc -l
grep -i "SEARCHSTRING" FILE.txt |wc -l
。可能这就是为什么你看到立即输出和延迟输出?在第一种情况下,你可能会有更多的匹配。您可以使用
wc -l
并比较匹配数量。 btrfs
计算行数