egrep несколько шаблонов с тире

Я пытаюсь сопоставить следующее: egrep '201411 [08 | 09 | 10 | 11] – [117 | 111] -'

20141108-111-xyz-abc 20141110-117-342-lala 

Но по некоторым причинам шаблон 2-го символьного класса ([117 | 111]) не работает. Он соответствует всем независимо.

Любая идея, что пойдет не так в моей модели 2-го символа?

Вы смешиваете классы символов с подшаблонами. Вам здесь нужен последний:

 grep -E '201411(08|09|10|11)-(117|111)-' file 

«Класс символов» означает: каждый символ из класса (например [[:alpha:]] ) или выбор ( [01][8901] ) могут появляться.

«Подшаблон» (с | ) означает: «Может появиться один из шаблонов, разделенных | ».