Portál AbcLinuxu, 3. května 2025 07:20
#!/bin/bash SRT="$1" TMP1=`mktemp` if [ -z "$SRT" ]; then echo "USAGE: `basename $0` [file_in_cp1250_dos_eol.srt]" exit fi cstocs 1250 utf8 "$SRT" | dos2unix | \ grep -v '\-\->' | sed 's/<i>//g;s/<\/i>//g;s/[ ,.\*\(\)\"0123456789-\/]/\n/g' | \ grep -v '^$' | perl -Mutf8 -pe 'utf8::decode($_);$_=lc($_);utf8::encode($_);' > "$TMP1" k=0 m=`sort -u "$TMP1" | wc -l` for i in `sort -u "$TMP1"`; do k=$(($k+1)) POCET=`grep '^'$i'$' "$TMP1" | wc -l` echo "$k/$m ... $POCET $i" > /dev/stderr echo $POCET $i done | sort -nr > "$SRT.stat" rm "$TMP1"
$ time srtstat 'The Code - Linux.srt' 2>/dev/null real 0m15.628s user 0m12.093s sys 0m11.821s (Intel Atom 1.6 GHz, 1 GB ram, SATA disk 250 GB hitachi 8MB cache) $ head -20 'The Code - Linux.srt.stat' 106 a 104 to 85 je 67 na 63 v 61 se 42 že 34 jsem 33 z 31 linux 29 ale 27 co 24 s 24 pro 24 linuxu 23 o 23 jako 22 byl 21 si 21 jsou
Tiskni
Sdílej:
> zavyslosti
nechcel si uz rovno napisat zavyslosty?
Protože to jde mnohem jednoduššeji napsat přimo v tom Perlu či AWK? Ale když si tak uvědomuji ty závislosti, jejich verze a jejich nepodporu UTF-8, tak si myslím, že nejjednodušší by to bylo v Javě. Žádný dos2unix
, tr
, iconv
, whatever… Žádný řešení závislostí…
time iconv -f cp1250 -t l2 a.srt \ | sed -n -e '/^[0-9]\+[[:space:]]*$/d;/-->/d;s/<\/\?[^>]\+>//g;s/[^[:alpha:]]/ /g;s/[[:space:]]\+/\n/g;p;' \ | tr '[:upper:]' '[:lower:]' \ | grep -Ev '^[[:space:]]*$' \ | sort | uniq -c | sort -nrBTW: Titulky jsou z dilu HIMYM 4.21 a casy jsou
real 0m0.152s user 0m0.024s sys 0m0.008s
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.