我写这封信是为了恭敬地请求帮助理解下面的grep (Mac小牛)示例。
文件到grep:2c2d2rh
猫狗鼠
猫狗鼠
模式文件:1c1d1rv
猫
狗
速率
$grep -f1c1d1rv 2c2d2rh
猫犬
猫犬
其中粗体字体模拟--color=auto。
grep手册页面说-f选项从文件中获取模式,每一行一个,所以我期待
猫大鼠
猫大鼠
猫犬大鼠
猫犬大鼠
猫犬大鼠
猫犬大鼠
粗体字体用我的逻辑表示匹配。grep不应该在1c1d1rv中读“cat”,并匹配2c2d2rh中的两行“cat”,然后转到“狗”和“老鼠”?我不明白为什么grep在这个示例中只生成两行输出,而不是六行,并且非常感谢您的解释。
西西,
戴德齐
发布于 2014-06-15 16:33:32
来自grep手册:
-f文件,- file = file读取一个或多个换行符分隔的模式和文件。空模式行匹配每个输入行。Newline不被认为是模式的一部分。如果文件为空,则没有匹配。
第一句表示grep查找文件中的所有模式并突出显示每个匹配(不像grep的“正常”行为,它在每一行中查找第一个匹配,而忽略其余的匹配)。
https://stackoverflow.com/questions/24231474
复制相似问题