Nowe posty

xx Warning (4)
Wczoraj o 14:06:50
xx Problem z instalacją z pendrive (18)
Wczoraj o 03:31:33
xx Fizyczny przycisk POWER nie wyłącza komputera (5)
2023-03-17, 19:09:16
xx Adapter Bluetooth USB a LINUX MINT (2)
2023-03-15, 23:39:28
xx Sprzet z Linuxem (3)
2023-03-09, 17:12:28
xx Potrzebna pomoc w pracy domowej (10)
2023-03-09, 16:11:41
clip Bład aktualizacji w peppermint os (4)
2023-03-08, 10:19:05
xx Ekran logowania (11)
2023-03-07, 23:46:22
xx Lenovo Legion 5 i Ubuntu (6)
2023-03-07, 12:34:30
xx instalacja pycharm comunity -komunikaty (4)
2023-03-07, 09:24:13

Autor Wątek: AWK - czy nie popełniłem błędów?  (Przeczytany 2169 razy)

kwgr

  • Gość
AWK - czy nie popełniłem błędów?
« dnia: 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