2015-11-08 6 views
2

У меня есть 4 модели линий в файлах, в текущем каталоге и подкаталогах:Рекурсивный Grep с групповым символом и образцом в середине

type bed 
type bed 1 
type bed 1 + 
type bed 1 . 
type bed 2 
type bed 2 + 
type bed 2 . 

и т.д., где картина является то, что число (1 - 15) после «постели» увеличивается, а затем «+» или «.». или не следовало ничего.

Мне нужно загон вывод для файлов только с узором типа

type bed 1 + 
type bed 2 + 
type bed 3 + 

, и я не хочу видеть файлы, такие как

type bed 
type bed 1 
type bed 1 . 
type bed 2 
type bed 2 . 

т.д.

Что я пробовал:

grep -r -E 'type bed [1-15]' * 

Но я не могу понять, как ограничить мой поиск только включением файлов, за которыми следует «+»

И мне нужна помощь, определяющая [1-15], поскольку кажется, что только [1-9] работает в том, что он возвращает числа 1,2,3,4,5,6,7,8,9. Но как только я удваиваю цифры, тогда мои результаты не то, что я ожидал бы.

Идеи или ссылки на соответствующие должности высоко оценены!

+0

'[1-15]' такой же, как '[51-1]' такой же, как '[51]' такой же, как ' [15] '. – melpomene

ответ

0

Это может помочь. [1-5]? соответствует необязательной второй цифре. + замаскирована \ соответствует буквального + в конце

grep -r -E 'type bed [0-9][1-5]? \+' * 
+0

Работы - спасибо, ThomasG !! – Cath

Смежные вопросы