new-words
diff grep-sentences.pl @ 5:9345cc05fdd1
Поиск предложений в тексте по заданному слову.
При нажатии K теперь показывается не только перевод слова,
но и предложения, содержащее это слово и найденные в тексте.
Для этого используется скрипт grep-sentences.pl ,
который ищет заданные слова в заданном файле.
На время обработки (то есть, с момента запуска new-words
и до выхода из редактора) дочерним процессам new-words
доступна переменная ORIGINAL_TEXT указывающая на файл,
содержащий обрабатываемый текст.
В словарях (en, de и так далее) к выводу словаря добавляется
вывод grep-sentences "$*" $ORIGINAL_TEXT, при условии,
что этот файл существует.
При нажатии 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 +}