Ask Your Question
1

apache.log podruhé

asked 2015-04-26 14:38:32 +0100

pesamare gravatar image

updated 2015-04-26 16:57:31 +0100

VojtechMyslivec gravatar image

Dobrý den. Už od včera se nemohu dostat ke správnému řešení selftestové úlohy s apache.log. Můžete mi prosím poradit ? Děkuji.

Můj script + zadání

http://pastebin.com/S2rjgiRb

edit retag flag offensive close delete

2 Answers

Sort by » oldest newest most voted
0

answered 2015-04-26 15:29:39 +0100

VojtechMyslivec gravatar image

Vidím minimálně 2 problémy:

  1. Už zmínil @Josef Kokeš. sed ve výchozím nastavení vytiskne každou řádku.
  2. Pozor na rozdíl u sort-u -k 1 a -k 1,1 -- není to to samé

    • viz man sort:

      -k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line). See POS syntax below

edit flag offensive delete publish link more

Comments

Man sort jsem četl. Bohužel asi bych to potřeboval vysvětlit víc česky.

pesamare ( 2015-04-26 15:53:49 +0100 )edit

To znamená, že pokud není určený poslední sloupec, bere se to do konce řádku. Tedy v tomto případě je -k 1 ekvivalentní s -k 1,4, což nemusí dělat to, co chceš...

VojtechMyslivec ( 2015-04-26 16:47:25 +0100 )edit
1

Tak to byl ten sort. Děkuji.

pesamare ( 2015-04-26 21:45:32 +0100 )edit
1

answered 2015-04-26 15:03:48 +0100

Josef Kokeš gravatar image

updated 2015-04-26 16:14:55 +0100

Na takhle položenou otázku se extrémně špatně odpovídá. Jaké je přesně zadání? Co ještě funguje a co už nefunguje? Jaká jsou vzorová data?

Každopádně problém vidím v těch sedech, jsou špatně použité. Zkuste si tipnout, co vám vypíše následující příkaz, a potom si ho vyzkoušejte: echo "abc" | sed 's|^[0-9]*$|\0|' (nebo jestli se vám nelíbí \0, tak echo "abc" | sed 's|^\([0-9]*\)$|\1|').

Další poznámky: Další poznámky už jsou irelevantní, když bylo doplněno zadání.

  • Ve vašem řešení by stačil jeden sed.
  • Tím pádem se zbavíte potřeby té proměnné a rizik a složitostí z toho plynoucích.
  • Vůbec netuším, k čemu má sloužit to awk, takže mám podezření, že tam vůbec být nemá, nebo je špatně (jak jsem psal, bez zadání těžko odhadovat).
edit flag offensive delete publish link more

Comments

Myslel jsem, že zadání znáte. Připsal jsem ho k tomu scriptu. K tomu sedu. Mám tam dva, protože sed 's|.*\('"$IP"'\).*'|\1| by mi asi nedal první výskyt, ale ten poslední. Awk odfiltruje nejčastější IP adresy od těch ostatních. Pardon, neumím používat symboly z askfit.

pesamare ( 2015-04-26 15:50:54 +0100 )edit

V tomto semestru nejsem v BI-PS1, takže ani zadání na ProgTestu neznám.

OK, to by vysvětlovalo dva sedy a awk, ty tedy asi budou dobře. Nicméně opravte si to použití sedu, ty moje příklady vám ukáží problém.

Josef Kokeš ( 2015-04-26 16:13:09 +0100 )edit

na askfit lze používat html, pro kód v komentáři viz: https://askfit.cz/question/1208/zvyrazneni-kodu-v-komentari/

VojtechMyslivec ( 2015-04-26 16:53:43 +0100 )edit

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]

Question tools

Follow
1 follower

Stats

Asked: 2015-04-26 14:38:32 +0100

Seen: 201 times

Last updated: Apr 26 '15