Tuesday, December 2, 2008

баш поможет филологам

и не только bash но и grep =)
задача была рассмотреть все случаи употребления инфинитивов в стихах Беллы Ахмадулиной. задачу можно рещать в лоб, просматривая полностью тексты стихов, а можно вначале выдрать строчки в которых употребляется инфинитивы (а так же строчки окружающие их), а потом, если нам этот случай интересен, смотреть его в полном тексте стихотворения. мы пойдем вторым путем.
единственная пролема -- кодировка файлов koi8-r а значит для начала надо конвертнуть в utf8
iconv --from-code koi8-r $file
а дальше все идет как по маслу. пробегаемся фором по всем файлам в директории (благо wget-ом скачать страничку типа http://www.litera.ru/stixiya/authors/axmadulina.html и все ее подстранички не проблема). и для каждого файла выполняем
iconv --from-code koi8-r $file | grep -E "(ть|ти|ться|чь|чься)[^а-яА-Я]+" -A 1 -B 1
т.е. конвертируем файл в utf8 и выбираем все строчки в которых встречаются слова заканчивающиеся на ть|ти|ться|чь|чься, а также выбираем 1 строчку перед строчкой с инфинитивом и одну строчку после таковой (параметры -A 1 -B 1)
for file in `ls .`; do 
    echo "<hr><a href='$file'>$file</a>" >> 1.html; 
    iconv --from-code koi8-r $file | grep -E "(ть|ти|ться|чь|чься)[^а-яА-Я]+" -A 1 -B 1 >> 1.html; 
done
плюс к этому добавляем <hr> и ссылку на файл для наглядности

0 comments:

Post a Comment