2013-04-28 7 views
1

Я пытаюсь найти все вхождения строки «5.1» во всех файлах в определенном каталоге. Я попытался с помощью следующей команды, но он не находит ни:Как найти строку с двойными кавычками, используя grep и regex?

#grep -Re[5]+\.+[1] . 

Что я делаю неправильно?

+0

С одной стороны, должно быть пространство между ' -Re' и шаблон. Затем ваш шаблон должен быть процитирован, чтобы оболочка не замаскировала диапазоны символов []. – Jens

ответ

1

Ваше выражение для меня не имеет смысла. Похоже, что вы ищете:

grep -R '5\.1' . 

Или, если вы хотите включить " символы:

grep -R '"5\.1"' . 

Но я не вижу, что связано с тем, в исходном посте, так что сложно сказать.

0

В поисках фиксированной строки рекурсивно будет

grep -fR '"5.1"' . 

(если вы на самом деле имел в виду в том числе двойные кавычки).

Обратите внимание, что опция -R не является POSIX, поэтому может быть недоступна. В этом случае портативное решение

find . -type f | xargs grep -f '"5.1"' 
3

Вам не нужно е регулярное выражение для этого, поэтому fgrep проще построить и выполняет быстрее

fgrep -R '"5.1"' . 
Смежные вопросы