Portál AbcLinuxu, 12. května 2025 18:24

Dotaz: Bash-skriptovani

23.10.2012 21:46 peta
Bash-skriptovani
Přečteno: 526×
Odpovědět | Admin
Příloha:
Ahoj, mam takovy problem, mam ulozeny text a mam vytvorit skript, ktery spocita cetnosti slov v textu a pak slova vypise i s cetnosti a nakonec je jeste seradi abecedne vzestupne, abecedne sestupne, podle cetnosti vzestupne a podle cetnosti sestupnea vypise na obrazovku a chtela bych to jeste vypsat do souboru, ale muj kod nejak nefacha...jsem v bashi zacatecnik

vubec nevim, zda mam vubec spravne napsanou cestu k textovemu souboru, kde mam ulozene znaky i cisla a tak, jestli se s tim skript vubec popere

moc dik za odpoved

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.10.2012 23:45 l4m4
Rozbalit Rozbalit vše Re: Bash-skriptovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
‚Skript nefachá‘ je velmi popisné a svědčí o důkladném pokusu o analýzu. Nerozlišovat, jak něco funguje, lze, pouze když to funguje. Když to nefunguje, tak to vždy nefunguje nějak konkrétně a nastává nějaký konkrétní problém.

Když tě nezajímá žádný konkrétní problém, poradím na náhodně vybraný:

V shellu je vhodné se vyhýbat cpaní dat do proměnných a jejich zpracovávání přímo v shellu. Slova lze spočítat například
grep -Eo '\<[[:alpha:]]+\>' SOUBOR | wc -l
případně s jiným regulárním výrazem, pokud je slovo definováno jinak. Není zapotřebí obsah souboru nikam načítat.
24.10.2012 00:46 NN
Rozbalit Rozbalit vše Re: Bash-skriptovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ja vidim dost syntaktickych chyb:
getopts ":arhv"
 if [-f "$name"]
           text="$text"
atd..
24.10.2012 00:54 NN
Rozbalit Rozbalit vše Re: Bash-skriptovani
a take jsem dost unaveny a slepy :D
24.10.2012 22:24 _dworkin
Rozbalit Rozbalit vše Re: Bash-skriptovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:
Kdyz nevim, zda to dela co chci, tak strkam vsude echo a predhazuji testovaci argumenty, popripade to rozsekam pomoci exit kdyz vadi chyba jeste nize.

Mezery!!! Tohle ti prece muselo rvat samo pokud si to spustila.

let optsCounter= optsCounter + 1 --> let optsCounter=optsCounter+1

optsReverse= "r" --> optsReverse="r"

getopts neznam a osetril bych si to sam "rucne", vyslo by me to rychleji, nez nastudovat dalsi syntaxi pro jediny skolni projekt (pote zapomenout) a pouzit to spatne. Nemas tam osetreno kdyz ti nekdo zada -rrr. Pak si sezeres jmeno souboru, protoze mas -rrr pocitano za 3 parametry. A kdyz ti predhodi minusko navic tak mas pak zase jeden neumazany a minus kde cekas jmeno souboru.

Mezery!!! napis si v prikazove radce [ a [[ je to nazev programu z /usr/bin/. A nezapomen na ; then if [-f "$name"] --> if [ -f "$name" ] ; then

count #cetnost na zaklade vyse popsane funkce Hmmm... proc? Zbytecny vystup. Pak to je pouzito dobre s rourou, tohle je nadbytecny. Doktorant to bude testovat automaticky skriptem a nebude se ti to shodovat.

if [ "optsNumeric" == "n" ]; --> if [ "$optsNumeric" == "n" ]; atd. Tuhle cast mas hodne mimo. Chybi ti tam varianta s opacnym razenim, ale stale podle cisel.

Mezery!!! Tobe kwrite nezvyraznuje syntaxi? awk'{printf "%s %s \n",$2,$1}' --> awk '{printf "%s %s \n",$2,$1}'
24.10.2012 22:38 _dworkin
Rozbalit Rozbalit vše Re: Bash-skriptovani
Kdyz ti soubor nekonci prazdnym radkem slepi se ti posledni slovo s prvnim dalsiho souboru.
24.10.2012 22:42 _dworkin
Rozbalit Rozbalit vše Re: Bash-skriptovani
text="$text" $(cat "$name") --> text="$text"`cat $name` --> text="$text "`cat $name`

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.