如何使用grep和regex查找双引号字符串?
问题描述:
我试图在某个目录下的所有文件中找到字符串“5.1”的所有出现。 我使用下面的命令尝试,但它仍然没有找到:如何使用grep和regex查找双引号字符串?
#grep -Re[5]+\.+[1] .
我在做什么错?
答
你的表情对我没有意义。好像你正在寻找:
grep -R '5\.1' .
或者,如果你要包括"
字符:
grep -R '"5\.1"' .
但我没有看到有关这些在你的原职事情,所以它的很难说。
答
寻找一个固定的字符串递归将
grep -fR '"5.1"' .
(如果你真的意味着包括双引号)。
请注意,-R
选项不是POSIX,因此可能无法使用。在这种情况下,便携的解决方案是
find . -type f | xargs grep -f '"5.1"'
答
你并不需要,电子正则表达式,那么fgrep一样简单构造,并执行快捷
fgrep -R '"5.1"' .
一方面必须有'之间的空间-Re'和模式。然后应该引用你的模式,以保持shell不会碰到'[]'字符范围。 – Jens 2013-04-28 21:00:15