#!/usr/local/bin/perl -s # calcula o numero de ocorrencias de cada palavra num texto # ignora as palavras que conte^m numeros no inicio (facil de mudar) # imprime ordenado alfabeticamente (default) ou # -n ordenado por numero de ocorrencias # -w imprime somente as palavras use Fcntl; require POSIX; &POSIX::setlocale("LC_CTYPE","iso_8859_1"); $, = ' '; # set output field separator $\ = "\n"; # set output record separator $/ = ""; # record separator:1 ou mais linhas em branco while (<>) { for (/(\w+)/g) {$oco{$_}++ unless(/^[0-9]/);} } if($n){ # imprime por ordem de quantidade de ocorrencias open(SORT,'| sort -nr'); for (keys %oco) {print SORT $oco{$_},$_} close SORT;} elsif($w){ # imprime so' as palavras ordenadamente for (sort keys %oco ) {print $_ ;}} else{ # imprime ordenadamente for (sort keys %oco ) {print $_ ,$oco{$_};}}