Ask Your Question
0

Zaverecny test

asked 2014-12-14 16:43:42 +0100

anonymous user

Anonymous

updated 2014-12-14 17:34:57 +0100

anonymous user

Anonymous

Zdravím, chtěl bych se zeptat, zda je někde seznam alespoň základních příkazu, které je dobré umět pro AWK, například v demo testu bylo použito substr,length apod., ale bylo to poprvé co jsem ho použil. Chápu, že AWK je založeno na príncipu C, proto se chci zeptat, zda je někde nějaký seznam bez kterého se člověk zkrátka neobejde. Díky za odpověď

edit retag flag offensive close delete

2 Answers

Sort by » oldest newest most voted
1

answered 2014-12-14 17:31:17 +0100

VojtechMyslivec gravatar image

updated 2014-12-14 17:34:05 +0100

BTW: V demo testu nebylo nutné použít ani substr ani length ani awk, bylo to pouze jedno z možných řešení, které se rozšířilo. Existují ale minimálně 2 způsoby, jak to zařídit bez použití awk, a které se používaly během semestru/výuky.

awk má tolik příkazů, že se je není možné naučit nazpaměť, pokud to člověk nepoužívá denně. Je potřeba znát způsob, jak se awk používá, jak ho můžu použít a kdy se mi hodí. Stejně tak, jako se find nehodí na výpis souborů v zadaném adresáři, tak se awk také nehodí na všechno. Jinými slovy, "pokud jde něco udělat (pro mě) snáz, základními příkazy, které ovládám, nebudu vytahovat kanón na vrabce, když nevím, kam se strká do kanónu koule".

Pokud je mi známo, tak žádný příklad nemá napsáno: "zpracujte v awk". Pokud ho někdo nechce používat, nemusí, řešení není nikdy jenom jedno. Pokud chceš použít awk, v manuálu najdeš co potřenuješ. Doporučuji pročíst, alespoň zběžně, co se tam dá najít a pak když už to chci použít si vyhledám danou syntaxi/použití. A ano, existují funkce jako substr, length nebo třeba (g)sub, které se dají pěkně využít, ale pozor ať ti to spíš nezamotají.

Abych to shrnul, pokud chci používat awk, je potřeba vědět, že se to píše nějak takhle awk 'podmínka {akce}' , že existuje něco jako BEGIN a END, se píší středníky (nebo nové řádky) mezi jednotlivé příkazy, že se proměnné a řetězce používají podobně jako v céčku, že můžu jednotlivé pole na řádce adresovat pomocí $ a že existují nějaké vnitřní proměnné FS, OFS, RS, ORS, NF, NR, ... které mi mohou ulehčit spoustu práce (nebo také přidělat). Taky třeba co dělá print a printf. Běžné kontrukce se najdou na cvičeních a v přednáškách.

Malá poznámka nakonec: pozor na rozdíly mezi awk, nawk a gawk.

edit flag offensive delete publish link more
1

answered 2014-12-14 17:36:44 +0100

Josef Kokeš gravatar image

updated 2014-12-14 17:47:08 +0100

Není žádný seznam povinných nebo doporučených příkazů pro AWK. Píšeme na počítači, takže si vždycky můžete to, co nevíte, dohledat v dokumentaci; není absolutně nutné si to pamatovat. Samozřejmě man vám moc nepomůže, pokud nemáte aspoň matnou představu, co AWK umí. K tomu byla cvičení a domácí práce, abyste si prošel dokumentaci, co je k dispozici, vyzkoušel jednotlivé varianty a tak vůbec si připravil půdu nejen pro počítačový test, ale i pro praktické používání. Samozřejmě to nebylo nezbytné, papírovými testy se dalo projít i bez toho, ale pokud jste to takhle udělal, o to složitější situaci budete mít teď.

Podotýkám, že každý úkol se dá řešit mnoha a mnoha různými způsoby. Můžete použít cokoliv, co povede k cíli, ledaže by snad zadání řeklo opak (zatím taková situace nastala jen u papírových testů v otázce "programem getw stáhněte webovou stránku...", ale tam to bylo proto, že žádný příkaz pro stahování webových stránek neučíme a bylo potřeba "vytvořit" něco jednoduchého, co dokáže na papíře použít každý, kdo si zadání přečetl). Není nutné, abyste používal AWK, stejně jako není nutné používat FIND. Jsou situace, kdy vám AWK (nebo FIND) práci ulehčí, dokonce mohou být situace, kdy se neočekává, že to dokážete jiným způsobem, ale také jsou situace, kdy vám AWK/FIND situaci výrazně zesložití.


Stručně: Musíte aspoň rámcově znát všechny příkazy, které byly probírány na přednáškách nebo cvičeních, a musíte mít dost zkušeností na to, abyste si pro dané zadání dokázal vybrat, které příkazy a jak poskládané vám nejsnáze umožní úlohu vyřešit. Cokoliv znáte navíc vám toto může ulehčit, ale není to nezbytné pro správné řešení.

edit flag offensive delete publish link more

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Stats

Asked: 2014-12-14 16:43:42 +0100

Seen: 455 times

Last updated: Dec 14 '14