Lösningsförslag till Labb 3

Relevanta dokument
Dakota. Massachusetts Nevada. New Jersey Kansas Kalifornien Arizona Mexico. Arkansas. Georgia Texas Louisiana Florida

Värdering av samverkan mellan universitet och samhälle 25 november Maria Landgren Chefsstrateg

SECTION 11: LONG-SERVING SENATORS

AMERIKANSKA REVOLUTIONEN

Kapitel 3. Mer om skalet. 3.1 Kommandorör ( )

Textbearbetning i skalet och man-sidor

Program. Kapitel make Program Interpreterande och kompilerande program

Kapitel 12. Mer om program Att rapportera buggar och problem make

Anderson, William T. Feb. 22, 1943-India April 21, 1943-India June 14, 1943-India Aug. 16, 1943-India Oct. 25, 1943-India. Bay, Clyde E.

Mer om skalet. Kapitel Omdirigering

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Gränssnitt för FakeGranska. Lars Mattsson

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Washington. Topp 5. Vita Huset. Luftfartsmuseet -National... Konstmuseet -National Gall... The Mall / Monumenten. Historiska Museet -Nationa...

awk, sed och grep awk döpt efter Aho Weinberger Kernighan (1977) sed en stream editor grep sed g/re/p bygger i viss mån på ed line editor

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Översikt. Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot. Linux 2 2 / 12

kommando -fl argument

Uttryck, satser och strömhantering

awk, sed och grep ed kommandon grep Standard unix editor tidig 70-tal program < 8Kbyte awk döpt efter Aho Weinberger Kernighan (1977)

Programmering II (ID1019) :00-11:00

TDDC74 Lab 02 Listor, sammansatta strukturer

Datorövning 1 Statistik med Excel (Office 2007, svenska)

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4

Snabbguide AlphaSmart NEO2

kl Tentaupplägg

Gör så här för att rapportera:

Datorövning 1 Statistik med Excel (Office 2007, svenska)

FOR BETTER UNDERSTANDING. Kom igång med. WordFinder Snabbguide

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Guido van Robot och olika UNIX-kommandon

kl Tentaupplägg

RESEGUIDER OM USA OCH KANADA. EN ANNOTERAD FW(JRTECKNI.NG.

Uppgift 1 ( Betyg 3 uppgift )

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Datorövning 1 Statistik med Excel (Office 2010, svenska)

Kommentar [k1]: Behöver vi kommentera det som finns till höger ovanför schematyp?

Tentamen TEN1 HI

AVANCERAD TABLETT-MENY FÖR AUTOCAD VER 10,11, 12 OCH 13. SnabbCAD ver 6.0. SnabbCAD ver 6.0 S N A B B C A D MÄNGDNINGSMODUL VER 1.

Grim. Några förslag på hur du kan använda Grim. Version 0.8

TDDI16: Datastrukturer och algoritmer

INTRODUKTION TILL LADOK

Unix design. Unix är ett operativsystem från mellan 1969 och 1972, beroende på hur man räknar. Unix utvecklas fortfarande.

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

Uppgift 1 (grundläggande konstruktioner)

Till flera av ovanstående finns det dessutom varianter, vilka kommer att presenteras i de olika avsnitten.

FLEXILAGER Ett hjälpmedel för anpassad lagerhantering. Original -version

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

efact Sök Sök/Rapporter ( )

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Lathund för SpellRight

Programmering i C++ Kompilering från kommandoraden

Byggmästarkrypto lärarsida

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

HI1024 Programmering, grundkurs TEN

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Introduktion till Matlab

Acrobat 9. Adobe. Grundkurs

Bryt ditt. musberoende! Kortkommandon för alla situationer

Tips: Titta på relevanta genomgångar på webbplatsen

Försättsblad till skriftlig tentamen vid Linköpings Universitet

PHOCA GALLERY (v 3.2.3)

DUGGA Tentaupplägg

Det virtuella tangentbordet

Om uppsatsmallen vid GIH

Chapter 3: Using Classes and Objects

Efter att ha gjort ett urval av patienter i förlossningsliggaren kan du göra en rapport som visar de uppgifter du är intresserad av.

Emacs. Eric Elfving Institutionen för Datavetenskap (IDA)

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

Information efter genomgång av Microsoft Word 2010

Att skriva på datorn

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

Att hämta organisationers publikationsposter ur DiVA

Lathund - TimeEdit Introduktion

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

DEN STORA AMERIKARESAN 7-9, GY

FC-kurs Röbäcks skolområde, åk 5-6

Uppgifter till praktiska tentan, del A. (7 / 27)

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Introduktion till frågespråket SQL (v0.91)

I den här labben ska vi använda oss av en trevlig nyhet i HTML5: Local Storage, för att implementera en sorts lokal gästbok.

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Magnus Nilsson Produktion

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

Datalogi för E Övning 3

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Dokumentnamn/Document Name: Installation Blankett.doc

kl Tentaupplägg

DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg ) behöver inte redovisas

Använda Python Laboration 1 GruDat, DD1344

Guide till IceTest. Före tävling. Före, under och efter tävling

Word Grunderna 1. Om du kan det allra enklaste i Word, hoppa över uppgifterna A-E.

Programsnickaren. Grunderna för hur du kommer igång och arbetar med Programsnickaren till Micro Rolltalk. Habilitering & Hjälpmedel

Transkript:

Lösningsförslag till Labb 3 Per Starbäck 6 oktober 2008 Det som står inom rutor såhär är inte en del av själva lösningarna, utan ytterligare kommentarer, bland annat om vanliga fel. I några svar har jag utelämnat en del av svaret och bytt ut det mot för att spara på papper. Det var en gång... 3.1 De tre första raderna starback@sonorant$ head -n 3 saga.txt Det var en gång en groda som undrade hur många stjärnor det fanns. Så han gav sig upp i rymden och räknade och räknade. Där träffade han andra stjärnräknare och de flyttade till en asteroid där de bosatte 3.2 Hur många ord i de tre första raderna? starback@sonorant$ head -n 3 saga.txt wc -w 38 3.3 Hur många rader? starback@sonorant$ wc -l saga40.txt 9 saga40.txt Många har velat skriva i stil med förra uppgiften något som slutat med wc -l. I så fall ska man som första led i röret ha nånting som ger ifrån sig hela filen saga40.txt. Ja, det kan man ju ha cat saga40.txt till, och så har flera svarat. Men det är helt onödigt. Ingen hopslagning av texter behöver ske (som cat kan göra), utan det enda program som behöver köras är wc för att räkna ord. Kommandot cat behövs inte för en enda uppgit i denna labb, men användes flitigt i onödan av många.

3.4 Näst första raden 3.4 Näst första raden starback@sonorant$ head -n 2 saga.txt tail -n 1 han gav sig upp i rymden och räknade och räknade. Där träffade han De två första raderna är Det var en gång en groda som undrade hur många stjärnor det fanns. Så han gav sig upp i rymden och räknade och räknade. Där träffade han och svaret är den sista av dessa två. Ord ord ord Ett sätt att kopiera /local/kurs/ids/verb.txt till kurskatalogen var med cp /local/kurs/ids/verb.txt verb.txt där kurskatalogen förutsätts vara aktuell katalog. Det går också att ge en katalog som sistaargument till cp, så ett kortare sätt (som ni inte kunde den veckan) var att skriva cp /local/kurs/ids/verb.txt. där man använder punkt som beteckning på aktuell katalog. 3.5 Räkna rader och ord starback@sonorant$ wc -lw verb.txt 6310 6310 verb.txt Lika många ord som rader alltså. Det verkar rimligt eftersom det tycks ligga ett ord på varje rad. 3.6 Vilka verb innehåller vv? starback@sonorant$ grep vv verb.txt avvakta avvara avvaxa avväpna avvärja brevväxla kalavverka Eftersom texten vi söker inte innehåller några konstiga tecken går det bra att bara skriva vv utan citattecken, men det skulle inte ha skadat. 2

3.7 Hur många verb innehåller vv? 3.7 Hur många verb innehåller vv? Dvs. hur många rader hade utdata från det förra kommandot. starback@sonorant$ grep vv verb.txt wc -l 14 3.8 Kortare lösning av föregående Man kan läsa om grep i Info för att hitta rätt väljare, men där finns det mycket information att gå vilse i, så det är lättare att slå upp grep i registret till kompendiet för att hitta rätt väljare. starback@sonorant$ grep -c vv verb.txt 14 3.9 Vilka av de tio första innehåller v? starback@sonorant$ head verb.txt grep v abbreviera absolvera 3.10 Vilka är de tio första som innehåller v? starback@sonorant$ grep v verb.txt head abbreviera absolvera ackvirera advocera aggravera aktivera angiva ansvara antvarda anvisa 3.11 Vilka innehåller j och y? Flera försökte hitta ett avancerat sökargument till grep för detta, och det finns sådana lösningar, men mycket enklare är det som ni redan kan, nämligen att kombinera kommandon. Om det har man är resultatet från grep j verb.txt, dvs. orden som innehåller j, så är det ju bara att söka efter y bland dessa ord. starback@sonorant$ grep j verb.txt grep y djupfrysa fjärrstyra fysiljera hyssja 3

nyjustera nyttja nyvälja tjuvlyssna utnyttja överutnyttja Det skulle ha gått lika bra att göra i andra ordningen. Rorövovarore 3.12 Sagan på rövarspråk starback@sonorant$ robber <saga.txt Dodetot vovaror enon gogånongog enon gogrorododa sosomom unondodroradode hohuror momånongoga sostotjojärornono hohanon gogavov sosigog upoppop i rorymomdodenon ocochoh roräkoknonadode ocochoh roräkoknonadode. Dodäror totr anondodrora sostotjojärornonroräkoknonarore ocochoh dode foflolytottotadode totilollol enon asostoteroroidod d sosigog ocochoh foforortotsosatottote atottot roräkoknona ocochoh soså lolevovdode dode lolycockokloligoga i a dodagogaror. Här har jag med flit låtit texten med de överlånga raderna gå utanför papperet. 3.13 Sagan på rövarspråk, omformatterad starback@sonorant$ robber <saga.txt fmt Dodetot vovaror enon gogånongog enon gogrorododa sosomom unondodroradode hohuror momånongoga sostotjojärornonoror dodetot fofanonnonsos. Soså hohanon gogavov sosigog upoppop i rorymomdodenon ocochoh roräkoknonadode ocochoh roräkoknonadode. Dodäror totroräfoffofadode hohanon anondodrora sostotjojärornonroräkoknonarore ocochoh dode foflolytottotadode totilollol enon asostoteroroidod dodäror dode bobososatottote sosigog ocochoh foforortotsosatottote atottot roräkoknona ocochoh soså lolevovdode dode lolycockokloligoga i alollola sosinona dodagogaror. 3.14 Mitt namn på rövarspråk starback@sonorant$ echo Per Starbäck robber Poperor Sostotarorbobäcockok Delstater 3.15 Vilka kom med på 1850-talet? För att gillas ska raden innehålla 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858 eller 1859. Flera tänkte på jokeruttryck. Även om vi hittills bara använt grep för att söka efter fixa strängar så går det att skriva 4

3.16 Bara namnen avancerade sökuttryck också, med alternativ osv., men det görs på ett eget sätt som vi kommer till senare. Här behövs dock inte det, utan det räcker med att söka efter en fix sträng, ty tre siffror i rad finns bara i dessa årtal. starback@sonorant$ grep 185 us-states.txt 1850-09-09 California 1858-05-11 Minnesota 1859-02-14 Oregon 3.16 Bara namnen Här var det lite oklart på frågan om det var alla delstater eller bara de från 1850-talet som avsågs, och det gick bra att svara med valfri tolkning. Med alla blir det så här. starback@sonorant$ cut -f 2 us-states.txt Delaware Pennsylvania New Jersey Arizona Alaska Hawaii Med bara de från 1850-talet kunde man istället skriva: grep 185 us-states.txt cut -f 2 3.17 Vilka innehåller New? starback@sonorant$ grep New us-states.txt cut -f 2 New Jersey New Hampshire New York New Mexico Här tog jag fram hela raderna med New och klippte sen ut fält 2. Det hade också gått att klippa ut fält 2 från alla raderna och sen sökt efter New i det resultatet. 3.18 Vilka innehåller mellanrum? Nästan precis som förra uppgiften. Enda kruxet är för att söka efter ett mellanrum måste den strängen sättas inom citattecken. Så antingen eller " ". 5

3.19 Sorterade namn starback@sonorant$ grep us-states.txt cut -f 2 New Jersey South Carolina New Hampshire New York North Carolina Rhode Island West Virginia North Dakota South Dakota New Mexico 3.19 Sorterade namn starback@sonorant$ cut -f 2 us-states.txt sort Alabama Alaska Arizona West Virginia Wisconsin Wyoming 3.20 Tretton sorterade starback@sonorant$ head -n 13 us-states.txt cut -f 2 sort Connecticut Delaware Georgia Maryland Massachusetts New Hampshire New Jersey New York North Carolina Pennsylvania Rhode Island South Carolina Virginia 3.21 Vilken är sist? starback@sonorant$ cut -f 2 us-states.txt sort tail -n 1 Wyoming Info 3.22 Check and correct spelling of the word at point M-$ Meta-dollar är lite besvärligt att skriva på ett svenskt tangentbord eftersom man skriver dollar med AltGr+4 så det blir Alt+AltGr+4. 6

3.23 Förslag 3? 3.23 Förslag 3? spilling 3.24 Vad heter Info-noden? Den heter (coreutils) seq invocation. 3.25 Hur många argument till seq? Ett, två eller tre argument. Ty synopsraderna var seq [OPTION]... LAST seq [OPTION]... FIRST LAST seq [OPTION]... FIRST INCREMENT LAST vilket visade tre möjliga sätt att anropa programmet, med 1, 2 eller 3 argument. (I uppgift 1.24 provade du dig fram till vad det betydde att köra seq med två argument.) 3.26 Det andra kommandot för numerisk operation Kommandot heter factor. 3.27 Hur långt är längsta verbet? starback@sonorant$ wc -L verb.txt 21 verb.txt Alternativt kunde man ha använt den långa varianten och skrivit wc --max-line-length verb.txt. En del använde båda, vilket var en missuppfattning. Dessa är synonymer, precis som t. ex. -l och --lines. Röda rummet 3.28 Sortera orden starback@sonorant$ sort rummet.words >rummet.sorted 3.29 Hur blev sorteringen? Där har åäö sorterats som aao, så det tycks inte vara en svensk sortering, utan så som orden skulle ha sorterats på t. ex. engelska. Dessutom har orden som inte innehåller bokstäver kommit på lite konstig plats. Där står 7

3.30 Ordklasser päronträd subst plats subst plockade verb - punkt, punkt. punkt rabatterna subst rakethylsor subst Riddarfjärden egen Det verkar bara vara bokstäverna som har sorterats, utan avseende på interpunktion på raderna och då har ju punkt hamnat mellan plockade och rabatterna. 3.30 Ordklasser starback@sonorant$ cut -f 2 rummet.words sort >rummet.ordklasser 3.31 Hur långt är längsta ordet? starback@sonorant$ cut -f 1 rummet.words wc -L 18 3.32 Rorödoda rorumommometot starback@sonorant$ robber <rummet.txt fmt -w 70 head -n 15 Dodetot vovaror enon afoftotonon i bobörorjojanon avov momajoj. Dodenon lolilollola totrorädodgogårordodenon popå Momososebobacockoke hohadode änonnonu icockoke boblolivovitot öpoppopnonadod foföror alollolmomänonhohetotenon ocochoh rorabobatottoterornona vovororo ejoj upoppopgogrorävovdoda; sosnonödodroropoppoparornone hohadode arorbobetotatot sosigog upoppop gogenonomom fofjojololåroretotsos lolövovsosamomlolinongogaror ocochoh hohölollolo jojusostot popå atottot soslolutota sosinon kokorortota voverorkoksosamomhohetot foföror atottot lolämomnona poplolatotsos åtot dode ömomtotåloligogarore sosafoffofroranonsosboblolomommomorornona, vovilolkoka totagogitot soskokydoddod unondoderor etottot ofofrorukoktotsosamomtot popäroronontotrorädod; sosyrorenonerornona vovänontotadode popå sosydodloligog vovinondod foföror atottot fofå gogå i boblolomom, momenon lolinondodarornone 8