关于grep命令行分隔符`--`输出时机的技术问询
grep输出
--分隔符的准确触发规则 直接给你明确死规则:
- 只有同时满足两个条件才会输出
--:- 你使用了上下文相关选项(
-A/-B/-C,也就是要输出匹配行的前后上下文内容); - 同一输入文件里,两个要输出的内容块之间,存在不被包含在输出里的行(简单说就是两个输出块中间有“空挡”,被不输出的行隔开了)。
- 你使用了上下文相关选项(
拿你的命令举例:grep -b -v -A 1 -i on,这里-v是反向匹配(找不含on的行),-A 1是把匹配行的后1行也带上输出。如果这些反向匹配的行加上后1行是连续的,中间没出现含on的行(也就是没有被“打断”),那两个输出块其实是连在一起的,自然不会输出--。
额外补充:处理多个输入文件时,grep不会用--分隔不同文件的结果,不同文件的结果会直接用文件名标注;--只负责分隔同一文件内,被不输出行隔开的多个独立输出块。
内容的提问来源于stack exchange,提问作者Amit Davidi
相关产品推荐
相关产品推荐

