Nowe posty

xx Dystrybucja pod HP Omen (7)
Dzisiaj o 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: AWK - czy nie popełniłem błędów?  (Przeczytany 2242 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