new-words
annotate 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 |
rev | line source |
---|---|
igor@5 | 1 #!/usr/bin/perl |
igor@5 | 2 |
igor@5 | 3 |
igor@5 | 4 $page=$ARGV[0]; |
igor@5 | 5 $regexp=$ARGV[1]; |
igor@5 | 6 #if (open(PAGE, "lynx -dump '$page'|")) { |
igor@5 | 7 if (open(PAGE, "$page")) { |
igor@5 | 8 local $/; |
igor@5 | 9 $text=<PAGE>; |
igor@5 | 10 $text =~ s@http://[a-zA-Z&_.:/0-9%?=,\#+()\[\]~-]*@@g; |
igor@5 | 11 $text =~ s@\n@@g; |
igor@5 | 12 @sentences=split /\./, $text; |
igor@5 | 13 for (@sentences) { |
igor@5 | 14 s/^\s*//; |
igor@5 | 15 s/\s*$//; |
igor@5 | 16 s/\[[0-9]+\]//g; |
igor@5 | 17 s/\s+/ /g; |
igor@5 | 18 print "$_.\n\n" if /\b$regexp\b/; |
igor@5 | 19 } |
igor@5 | 20 } |