Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Проверка списка телефонов с помощью grep

В нашем предыдущем примере мы рассмотрели отдельные телефонные номера и проверили их правильность форматирования. Более реалистичным сценарием была бы проверка списка чисел, поэтому давайте составим список. Мы сделаем это, произнеся магическое заклинание в командной строке. Это будет волшебство, потому что мы не рассмотрели большинство задействованных команд, но не беспокойтесь. Мы вернемся к этому в следующих главах. Вот заклинание:



[я @ linuxbox ~] $ для i в {1..10}; do echo "($ {RANDOM: 0: 3}) $ {RANDO M: 0: 3} - $ {RANDOM: 0: 4}" >> phonelist.txt; сделано

[я @ linuxbox ~] $ для i в {1..10}; do echo "($ {RANDOM: 0: 3}) $ {RANDO M: 0: 3} - $ {RANDOM: 0: 4}" >> phonelist.txt; сделано


Эта команда создаст файл с именем список телефонов.txt содержащий десять телефонных номеров. Каждый раз, когда команда повторяется, в список добавляются еще десять чисел. Мы также можем изменить значение 10 рядом с началом команды для создания большего или меньшего количества телефонных номеров. Однако, если мы проверим содержимое файла, мы увидим, что у нас есть проблема:



изображение

[я @ linuxbox ~] $ кот phonelist.txt


(232)

298-2265

(624)

381-1078

(540)

126-1980

(874)

163-2885

(286)

254-2860

(292)

108-518

(129)

44-1379

(458)

273-1642

(686)

299-8268

(198)

307-2440


Некоторые числа имеют неправильный формат, что идеально подходит для наших целей, поскольку мы будем использовать

grep, чтобы проверить их.

Одним из полезных методов проверки было бы сканирование файла на предмет недопустимых номеров и отображение результирующего списка:



[я @ linuxbox ~] $ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$'

список телефонов.txt (292) 108-518

(129) 44-1379

[я @ linuxbox ~] $

[я @ linuxbox ~] $ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$'

список телефонов.txt (292) 108-518

(129) 44-1379

[я @ linuxbox ~] $


Здесь мы используем -v вариант для получения обратного соответствия, чтобы мы выводили только те строки в списке, которые не соответствуют указанному выражению. Само выражение включает метасимволы привязки на каждом конце, чтобы гарантировать, что число не имеет лишних символов на обоих концах. Это выражение также требует, чтобы круглые скобки присутствовали в допустимом номере, в отличие от нашего предыдущего примера телефонного номера.


Лучшие облачные вычисления для ОС в OnWorks: