# HG changeset patch # User Igor Chubin # Date 1270374886 -10800 # Node ID 9b18c7efe31cfd03045313a0c0595c4b532a72fa # Parent 975b549364f2d32fc119c3769b2e2199c2a107b1 Километровые столбы — процентные отметки. В списке неизвестных слов добавляются пометки, указывающие, какой процент текста закроют расположенные выше слова (вместе с уже известными словами), если их выучить. До 90% пометки ставятся с шагом 5; после 90 — с шагом 1. diff -r 975b549364f2 -r 9b18c7efe31c new-words.sh --- a/new-words.sh Sat Apr 03 15:11:12 2010 +0300 +++ b/new-words.sh Sun Apr 04 12:54:46 2010 +0300 @@ -60,7 +60,25 @@ total_known="`echo $total-$total_unknown|bc`" percentage="`echo '100*('$total-$total_unknown')'/$total | bc -l | sed 's/\\.\(.\).*/.\1/'`" echo "# $LANGUAGE, $percentage, <$total_known/$total>" - cat "$after" + PERL_SCRIPT_TEMP_NAME=`mktemp /tmp/perl-grep-v-english-XXXXXXXX` + cat <<'PERL_SCRIPT' > $PERL_SCRIPT_TEMP_NAME +my $total=shift(@ARGV); +my $total_known=shift(@ARGV); +my $s=0; +my $mark_line=int($total_known*100/$total/5)*5+5; +while(<>) +{ + print; + /^\s*([0-9]*)\s*/; + $s+=$1; + if (int(($total_known+$s)*100/$total)>=$mark_line) { + print "# $mark_line\n"; + if ($mark_line>=90) { $mark_line+=1; } else { $mark_line +=5; }; + } +} +PERL_SCRIPT + perl $PERL_SCRIPT_TEMP_NAME "$total" "$total_known" "$after" + rm $PERL_SCRIPT_TEMP_NAME rm $after }