поиск с помощью grep для слов, начинающихся и заканчивающихся - PullRequest
12 голосов
/ 02 октября 2009

Как найти что-то, что начинается и заканчивается символом

ABC-0
ABC-1
ABC-10
ABC-20

Я хочу grep -v для ABC-0 и ABC-1

Ответы [ 3 ]

10 голосов
/ 02 октября 2009

Если вы пытаетесь сопоставить слова, используйте \b в качестве разделителя слов, например:

\ Ъ [A-Za-Z] - \ D + \ Ъ

из эта ссылка :

\b - соответствует позиции между символом слова (что-либо, совпадающее с \w), а также несловарный символ (все, что соответствует [^\w] или \W) как в начале и / или конце строки, если первый и / или последний символы в строке являются символами слова.

9 голосов
/ 02 октября 2009

Непонятно, что вы имеете в виду. Если вам нужен символ в начале и двойные цифры в конце, вы можете использовать

^[A-Za-z].*\d\d$

Если вам нужен только дефис, а затем одиночная цифра, используйте:

^[A-Za-z].*-\d$

Если вам все равно, сколько цифр (одна или более), но должен быть дефис, используйте:

^[A-Za-z].*-\d+$

Если ни один из них не является тем, что вы хотите, пожалуйста, дайте больше информации ... первое предложение вашего вопроса на самом деле не соответствует остальным.

4 голосов
/ 02 октября 2009

Для вашего примера

egrep -v "^(ABC)-(0|1)$"

ответ. Для общего случая, пожалуйста, посмотрите на ответ Джона

^ отмечает начало паттерна, $ конец. | означает or

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...