Игры с регулярными выражениями и grep

Есть директория mei с 5-ю файлами и одной поддиректорией:

sasha@zenon2:~/Documents/papers$ ls -l mei
total 2860
-rw------- 1 sasha sasha  265621 2006-12-04 15:39 article-12-2004-5.pdf
-rw------- 1 sasha sasha  505856 2005-09-14 14:11 control2005_3.doc
drwxr-xr-x 3 sasha sasha    4096 2008-06-20 23:17 diss
-rw------- 1 sasha sasha  690688 2004-05-27 13:48 exponenta.doc
-rw------- 1 sasha sasha 1084416 2005-06-01 15:20 ivanovo.doc
-rw------- 1 sasha sasha  351216 2006-12-11 11:38 teploen_2006_06.pdf

Надо подсчитать число файлов. Пробуем “начинается на что угодно, кроме d (directory)”:

sasha@zenon2:~/Documents/papers$ ls -l mei | grep -c ^[^d]
6

Лишку, т.к. посчитал и строку “total 2860″. Пробуем кроме “d” или “t”

sasha@zenon2:~/Documents/papers$ ls -l mei | grep -c ^[^dt]
5

Правильно, но лучше, начинается только с “-”:

sasha@zenon2:~/Documents/papers$ ls -l mei | grep -c ^[-]
5

Теперь, есть текстовый файл public.txt со списком статей (каждая начинается с * и номера):

sasha@zenon2:~/Documents/papers$ grep  ^*[0-9] public.txt
*12. Технологии искусственного интеллекта в задачах диагностики
*10. Технологии искусственного интеллекта в задачах диагностики
*9. Модифицированный генетический алгоритм для задач оптимизации и
*8?. Диагностика информационных подсистем АСУТП с использованием
*7. К вопросу о параметрической оптимизации алгоритмов управления и
*20. Диагностика информационных подсистем АСУТП с использованием
sasha@zenon2:~/Documents/papers$

Номер 8 помечен “?”, т.к. для него приведена мертвая ссылка. Для остальных скачены файлы (в директории mei). Надо проверить совпадение числа файлов (5) числу ссылок в public.txt (кроме помеченной “?”). Начинается с “*”, затем идет цифра, затем все (цифра или точка), кроме “?”:

sasha@zenon2:~/Documents/papers$ grep  ^*[0-9][^?] public.txt
*12. Технологии искусственного интеллекта в задачах диагностики
*10. Технологии искусственного интеллекта в задачах диагностики
*9. Модифицированный генетический алгоритм для задач оптимизации и
*7. К вопросу о параметрической оптимизации алгоритмов управления и
*20. Диагностика информационных подсистем АСУТП с использованием
sasha@zenon2:~/Documents/papers$ grep -c ^*[0-9][^?] public.txt
5

Славненько.

Ответить

Вы должны авторизоваться для отправки комментария.