Как показать regexp части текста

У меня есть много файлов, которое строки похоже

lotsofblah/XY##_####_morefoo

где # является числом. Теперь я хочу показать только части

YZ##_####

в ударе, каждом в новой строке, конечно.

1
задан 09.04.2017, 15:08

2 ответа

Принятие Вас хочет, чтобы XY был любыми двумя буквами...

Что-то как

grep -Eo "[A-Z]{2}[0-9]{2}_[0-9]{4}" file

Соответствовал бы [двум буквам] [два числа] _ [четыре числа]

Если бы Вы хотели, то это могло бы быть немного более точно, удостоверившись, что существует / infront и _ впоследствии, но это - начальная точка.

Соедините это от человека grep:

-E, --extended-regexp
          Interpret PATTERN as an extended regular expression (see below)

-o, --only-matching
          Show only the part of a matching line that matches PATTERN.

и http://www.regular-expressions.info/reference.html

2
ответ дан 12.12.2019, 12:59

Я предполагаю, что XY и YZ являются тем же, и я буду рассматривать их так же, как XY

egrep "XY[0-9]{2}_[0-9]{4}" filename -o

Ключ -o опция, которая показывает только совпавший текст.

0
ответ дан 12.12.2019, 12:59

Теги

Похожие вопросы