为什么我会得到意外的令牌?

时间:2012-10-15 16:22:49

标签: regex linux shell grep

我正在尝试在包含文件列表的文本文件中搜索.c.cpp.h个文件。但是,当我跑步时遇到问题时:

$ grep -sr ^.*\.(c|cpp|h)$ .
bash: syntax error near unexpected token `('

2 个答案:

答案 0 :(得分:2)

我没有要测试的Unix机箱,但是:

grep -sr '^.*\.(c|cpp|h)$' .

...至少应该不会触发语法错误。

答案 1 :(得分:1)

你应该好好用

grep -sr '\.(c|cpp|h)$' .
  1. 正则表达式应该用引号
  2. 无需在模式
  3. 中加入^.*部分