需要帮助了解grep与模式文件的输出

时间:2014-06-15 16:01:17

标签: regex file-io grep pattern-matching

我写信是为了请求帮助理解下面的grep(Mac OS X Mavericks)示例。

文件到grep: 2c2d2rh

猫狗老鼠
猫狗鼠

模式文件: 1c1d1rv



$ grep -f1c1d1rv 2c2d2rh产生

猫狗鼠
猫狗鼠

粗体字体模拟--color = auto。

grep man页面说-f选项从FILE获取模式,每行一个,所以我期待

狗鼠
狗鼠
老鼠
老鼠
猫狗老鼠
猫狗老鼠

其中粗体字表示我的逻辑匹配。不应该在1c1d1rv中读取'cat'并匹配2c2d2rh中的两个'cat'行并继续'dog'和'rat'?我不明白为什么grep在这个例子中只生成两个输出行而不是六个输出行,并且非常感谢解释。

斜斜,
戴德琪

1 个答案:

答案 0 :(得分:0)

从grep手册:

  

-f file, - file = file                从文件中读取一个或多个换行符分隔的模式。空图案线条                匹配每个输入行。换行符不被视为模式的一部分。如果                文件为空,没有匹配。

第一句话意味着grep在文件中查找所有模式并突出显示每个匹配(不像"正常" grep的行为,在每一行中查找第一个匹配并忽略其余部分。