new-words

diff grep-sentences.pl @ 5:9345cc05fdd1

Поиск предложений в тексте по заданному слову.

При нажатии K теперь показывается не только перевод слова,
но и предложения, содержащее это слово и найденные в тексте.
Для этого используется скрипт grep-sentences.pl ,
который ищет заданные слова в заданном файле.

На время обработки (то есть, с момента запуска new-words
и до выхода из редактора) дочерним процессам new-words
доступна переменная ORIGINAL_TEXT указывающая на файл,
содержащий обрабатываемый текст.

В словарях (en, de и так далее) к выводу словаря добавляется
вывод grep-sentences "$*" $ORIGINAL_TEXT, при условии,
что этот файл существует.
author Igor Chubin <igor@chub.in>
date Tue Mar 09 11:57:55 2010 +0200 (2010-03-09)
parents
children d1851ee29a1a
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/grep-sentences.pl	Tue Mar 09 11:57:55 2010 +0200
     1.3 @@ -0,0 +1,20 @@
     1.4 +#!/usr/bin/perl
     1.5 +
     1.6 +
     1.7 +$page=$ARGV[0];
     1.8 +$regexp=$ARGV[1];
     1.9 +#if (open(PAGE, "lynx -dump '$page'|")) {
    1.10 +if (open(PAGE, "$page")) {
    1.11 +    local $/;
    1.12 +    $text=<PAGE>;
    1.13 +    $text =~ s@http://[a-zA-Z&_.:/0-9%?=,\#+()\[\]~-]*@@g;
    1.14 +    $text =~ s@\n@@g;
    1.15 +    @sentences=split /\./, $text;
    1.16 +    for (@sentences) {
    1.17 +        s/^\s*//;
    1.18 +        s/\s*$//;
    1.19 +        s/\[[0-9]+\]//g;
    1.20 +        s/\s+/ /g;
    1.21 +        print "$_.\n\n" if /\b$regexp\b/;
    1.22 +    }
    1.23 +}