Hitta saker i en loggfil med Unix-kommandon
Du skall använda Unix-kommandon för att analysera och finna svar i en textbaserad loggfil från en irc-kanal.
#Förkunskaper
Du har kunskaper motsvarande kapitel 6 Redirection i boken The Linux Command Line.
#Introduktion
De filer du skapar och använder i denna uppgiften skall du spara i ditt kursrepo i katalogen me/kmom03/irc. De används för att redovisa uppgiften.
Börja med att kopiera irc-loggen, du hittar den i exempel-katalogen irc i ditt kursrepo.
# Gå till ditt kursrepo
rsync -av example/irc/ me/kmom03/irc/
Du har nu irc-loggen ircLog.txt. Titta i den och bekanta dig med hur den ser ut.
Skapa en fil, log.txt, och lägg den i samma katalog. Använd loggfilen för att skriva ned de kommandon du testar med. Det är dels för din egen del och dels för att läraren skall se hur du jobbat med övningen.
Skapa en fil som heter solutions.bash. Ge den rättigheter så filen blir körbar.
touch solutions.bash chmod 755 solutions.bash
Varje uppgift nedan kan lösas men en kommandosekvens på en rad. Varje lösning skall finnas på en rad i filen solutions.bash.
Låt oss lösa en uppgift tillsammans, bara för att se hur det fungerar.
- Använd
wcför att räkna ut hur många rader ircloggen består av. Spara kommandosekvensen isolutions.bash. Lägg svaret som kommandot ger i filena.txt. (1 poäng)
Lösningen på frågan är kommandot wc --lines. Se manualsidan för wc med man wc.
För att lägga svaret, som kommandot ger, i filen a.txt så måste jag göra redirect på output från kommandot till en fil. När jag sätter samman kommandot på en rad så blir det så här.
wc --lines ircLog.txt > a.txt
Jag tar nu den raden och lägger i filen solutions.bash, den filen kan nu se ut så här, inklusive en shebang.
#!/bin/bash
# Solution to 1.
wc --lines ircLog.txt > a.txt
# Solution to 2.
# Solution to 3. Etc.
Använd kommentarer för att visa vilken rad som hänger ihop med vilken uppgift.
Redo? Kom ihåg, varje lösning på kommandosekvensen på en egen rad i solutions.bash och varje kommandosekvens gör redirect på sin output till en fil likt a.txt (eller b.txt och så vidare).
Varje lösning ger poäng. Du är klar när du har mer än 10 poäng.
Du kan nu köra följande kommandosekvens för att se dina lösningar.
./solutions.bash; more ?.txt
#Krav
Använd
wcför att räkna ut hur många rader ircloggen består av. Spara kommandosekvensen isolutions.bash. Lägg svaret som kommandot ger i filena.txt. (1 poäng)Hitta raden med “pansars” åsikt om “notepad”. (
b.txt1 poäng)Använd
wcför att räkna ut hur många ord, words, ircloggen består av. (c.txt1 poäng)Hitta de fyra sista raderna i filen. (
d.txt1p).När öppnades ircloggen för första gången? Ledtråd “Log opened”. Svara med raden som säger när loggen öppnades för första gången. (
e.txt1p)Vad innehåller den tredje raden där wasa säger något? (
f.txt1p)Hur många rader är det som är loggade enligt tiden 11:15? (
g.txt1p)Hitta de första 10 raderna från dagen “Wed Jun 17 2015”. (
h.txt3p)Hittade raderna som är inlagda angående “forum” och innehåller detaljer om “projektet” och “htmlphp”. (
i.txt3p)Vad sa “Bobbzorzen” två rader innan han sa “cewl”? (
j.txt3p)Hur många ord är det i den fjärde till nionde raden, under dagen “Mon Jun 08 2015”? (
k.txt3p)Hitta den första raden där “pansar” säger något när klockan är 07:48. (
l.txt3p)Publicera dina svar enligt följande.
# Ställ dig i kurskatalogen
dbwebb publish irc
Rätta eventuella fel som dyker upp och publicera igen. När det ser grönt ut så är du klar.
#Extrauppgift
Det finns ingen extrauppgift.
#Tips från coachen
Lycka till och hojta till i forumet om du behöver hjälp!
#Revision history
- 2016-02-19: (C, mos) Ändrade krav 9 till forum/projekt/htmlphp.
- 2015-08-27: (B, lew) Ändrade krav “April 19th 2015” skall vara “Wed Jun 17”.
- 2015-08-05: (A, lew, mos) Första utgåvan i samband med kursen linux.
