Forum Linux.pl

Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: kwgr w 2008-04-22, 14:02:38

Tytuł: AWK - czy nie popełniłem błędów?
Wiadomość wysłana przez: kwgr w 2008-04-22, 14:02:38
Mam takie zadanko do napisania - moja koncepcja wygląda tak:
Czy są tu błędy?


#!/bin/sh



# w zadanym pliku tekstowym znalesc slowo najczesciej wystepujace na poczatku zdania.

#Zdanie odrozniamy  .  !  ?


# Testowanie poprawnosci argumentow
if [ "$#" != "1" ]; then
echo "Złe parametry wywołania"
exit 2
fi

if [ ! -f $1 ]; then
echo "To nie jest plik"
exit 3
fi


awk '
BEGIN { RS="[.?!]+"

}
{
if (match($1,/[:blank:]/)!=0)
{
tab[$1]++
printf "%s %s\\n", $1, tab[$1]
}

}

END {
for (wyraz in tab)
{
if(tab[wyraz] > max)
{
max = tab[wyraz]
str = wyraz
}
}

printf "najwięcej: %s = %s\\n",str,tab[str]
}


' $1
Pozdrawiam i dzięki za pomoc.

Ed: Pomogłem (mam nadzieję) tylko ewentualnym czytelnikom tego skryptu. Zobacz http://forum.linux.pl/help.php#bbcode