Grep регулярное выражение как

Grep регулярное выражение как

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

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

Команда, которую я использую, это

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

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

95544
94554
94445
95567

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

91121
92231 

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

решение1

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

cat zipcodes 
95544 94554 94445 92231 95567 91121

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

egrep -o '9[4-7]{4}' zipcodes 
95544
94554
94445
95567

решение2

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

95544 
94554 
94445 
95567
91121 
92231

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

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

Выход:

95544 
94554 
94445 
95567

решение3

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

  1. ^ Начало сравниваемой строки
  2. . (Точка) соответствует любому символу
  3. звездочка, ноль или больше

Связанный контент