Grep regex how to

Привет, у меня есть файл с 5-значным почтовым индексом.

Я пытаюсь использовать grep для печати почтовых индексов, начинающихся с 9, и могу содержать только цифры от 4 до 7

Я использую команду

grep '[4-7], 9'$ zipcodesDataEntry.cvs

Проблема в том, что я получаю почтовые индексы с цифрами 1 2 3 8 Мой результат должен быть:

95544
94554
94445
95567

Однако я получаю несколько почтовых индексов, например:

91121
92231 

Я пытаюсь исключить любые числа, которые не равны 9, но находятся в диапазоне 4-7

0
14.11.2018, 21:02
3 ответа

grep '^9.[4-7].*' zipcodesDataEntry.cvs

  1. ^ Начало сравниваемой строки
  2. . (Точка) совпадает с любым символом
  3. звездочка, ноль или более
-1
28.01.2020, 02:34

Содержимое входного файла:

95544 
94554 
94445 
95567
91121 
92231

Используя awk (в случае egrep недоступно), вы можете попробовать что-то вроде этого:

awk '/9[4-7]{4}/' zip.txt

Результат:

95544 
94554 
94445 
95567
0
28.01.2020, 02:34

Учитывая этот файл:

cat zipcodes 
95544 94554 94445 92231 95567 91121

Я могу использовать этот grep:

egrep -o '9[4-7]{4}' zipcodes 
95544
94554
94445
95567
3
28.01.2020, 02:34

Теги

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