我写信是为了请求帮助理解下面的grep(Mac OS X Mavericks)示例。
文件到grep: 2c2d2rh
模式文件: 1c1d1rv
猫
狗
鼠
$ grep -f1c1d1rv 2c2d2rh产生
猫狗鼠
猫狗鼠
粗体字体模拟--color = auto。
grep man页面说-f选项从FILE获取模式,每行一个,所以我期待
猫狗鼠
猫狗鼠
猫狗老鼠
猫狗老鼠
猫狗老鼠
猫狗老鼠
其中粗体字表示我的逻辑匹配。不应该在1c1d1rv中读取'cat'并匹配2c2d2rh中的两个'cat'行并继续'dog'和'rat'?我不明白为什么grep在这个例子中只生成两个输出行而不是六个输出行,并且非常感谢解释。
斜斜,
戴德琪
答案 0 :(得分:0)
从grep手册:
-f file, - file = file 从文件中读取一个或多个换行符分隔的模式。空图案线条 匹配每个输入行。换行符不被视为模式的一部分。如果 文件为空,没有匹配。
第一句话意味着grep在文件中查找所有模式并突出显示每个匹配(不像"正常" grep的行为,在每一行中查找第一个匹配并忽略其余部分。