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



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

Textbearbetning i skalet och man-sidor

kommando -fl argument

Sed och Awk. Linuxadministration II 1DV421. Monday, August 8, 11

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)

TDDD02 Föreläsning 2 HT Reguljära uttryck och reguljära språk Lars Ahrenberg

Lathund för UNIX och Emacs

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

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

Introduktion till programmering SMD180. Föreläsning 7: Strängar

Ö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

open_ports.sh Vet du vad din dator gör på nätet? tisdag den 19 oktober 2010

Olika shell. Skalprogrammering. Pipor och omdirigering av strömmar

Terminal vad det är vad man kan göra med den

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

729G09 Språkvetenskaplig databehandling

Strängar. Strängar (forts.)

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

LABORATION 4: Textmanipulering Introduktion till lingvistik och datalingvistik XD1110

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

729G04 Programmering och diskret matematik. Föreläsning 7

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

Unix. Dagens föreläsning. Unix. GUI/Textgränssnitt

1.1 Skapa ett Inline-Script som skapar filen För att skapa ett inline script drar man InLine till där man vill ha själva scriptet.

Programmering i C++ Kompilering från kommandoraden

lex källkod lex.l lexkompilator lex.yy.c C- kompilator lex.yy.c a.out sekvens av tokens a.out input specifikation av tokens mha reguljära uttryck

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Språket Python - Del 1 Grundkurs i programmering med Python

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

U N I X G R U N D K U R S Ö V N I N G S U P P G I F T E R

TDIU01 - Programmering i C++, grundkurs

Unix. Dagens föreläsning. Unix. GUI/Textgränssnitt. Syfte. Mål

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

Om e-post. Introduktion till Emacs. Att skicka e-post. ÅÄÖåäö i pine. Varför Emacs? Vad är Emacs? Emacs en editor/textbehandlare

UNIX verktyg. Användbara kommandon Fil och informationssökning Tags Versionshanteringssystem

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer

Introduktion till Matlab

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

Reguljära uttryck. Kapitel Reguljära uttryck Ett godtyckligt tecken: Ett speciellt tecken: [ ] 8.1.

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

Tentaupplägg denna gång

komplex av nödvändiga, understödjande program som kallas Utanpå OS existerar ett - eller flera olika - slags skal som

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

Föreläsning 3. Programmering, C och programmeringsmiljö

Filers innehåll. Grundläggande databehandling. Representation av text. pffb = påhittat filformat för bilder

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, Raphael Corsoski, Erik Eliasson, Christian von Schultz, 2008.

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

Obligatorisk uppgift: Numerisk kalkylator

En kort text om programmering i C.

Obligatorisk uppgift: Numerisk kalkylator

Programmeringsteknik med C och Matlab

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Introduktion till Python

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Uppgift 1 ( Betyg 3 uppgift )

Planering Programmering grundkurs HI1024 HT 2014

Introduktion till Matlab

Matriser och vektorer i Matlab

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

Introduktion till programmering. Standardfunktioner. Vad används datorer till? Standardfunktioner. Föreläsning 2. Prelude. $ ghci...

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Tentamen EDAF30 Programmering i C++

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Användarhandledning Version 1.2

Standardfilerna Input och Output

Tilpro Övning 1. Per-Anders Staav (föredrar att kallas Pa) Kan nås via epost: (fast de flesta frågor besvaras nog bäst av Alexander)

Datalogi, grundkurs 1

TDP005 Projekt: Objektorienterat system

Standardfilerna Input och Output. Filer... Filer... vanlig utbyggnad för ökad dynamik. Filer... filtyper

Planering av ett större program, del 2 - for och listor. Linda Mannila

Introduktion till Matlab

Versionshantering med Git

Instuderingsfrågor, del D

TDP002 - Imperativ programmering

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

Planering Programmering grundkurs HI1024 HT data

Introduktion till Jasmine 1.2 ODQL

Tentamen i Grundläggande Programvaruutveckling, TDA548

Övning 0. Python för den som kan MATLAB. Lättare att läsa färdig kod än att skriva själv Det krävs övning för att automatiskt få detaljerna rätt:

Mer om språk och Ruby

Språket Python - Del 2 Grundkurs i programmering med Python

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

TANA17 Matematiska beräkningar med Matlab

I ett program hantera man ofta samlingar av objekt av samma typ.

Manual Demoväska RFID. Manual Demoväska. Sara Svensson/Monika Lindgren/Fredrik Karlsson Version BnearIT AB 1(17)

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Laboration 1 Introduktion till Visual Basic 6.0

Användarhandledning PW Excel Manager

Extramaterial till Matematik Y

Ordlistor, filhantering och ut på webben. Linda Mannila

Kapitel 5. Strömmar. Utmatning

Filbeskrivningar Eller på särskild CD skiva

Systemnära programmering Tentamen. Systemnära programmering, 7.5hp 5 november 2012

Transkript:

C&UNIX awk, sed och grep 1 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

C&UNIX ed 2 ed Standard unix editor tidig 70-tal program < 8Kbyte terminal 10 tecken s 1 teckenbaserad kommandogränssnitt radbaserad textbehandling kan köras från script varför nu? introduktion till (andra) filter bra att ha i nödfall

C&UNIX ed 3 ed kommandon default värden framför komando får utelämnas kommando effekt.a append, until line consisting of period.,.c change 1,$g/re/cmd utför cmd på rader inom 1,$ matching re.,.+1j join.,.p print lines q quit.,.s/re/new/ substitute 1,$w file write to file

C&UNIX grep 4 grep grep Söker efter mönster ur filer a fgrep Söker efter stränger ur filer, snabb egrep Söker efter mönster ur filer, utökat reguljära uttryck a Tänk på att allt är filer i UNIX

C&UNIX grep 5 grep-kommandon Options Betydelse -b Visar byte offset -c Räknar bara matchade rader -f file egrep läser in reguljära uttryck från fil -i Ignore case -l Lista bara filnamn vid träff -num Visar num rader före och efter träff -q Skriver bara ut felmeddelanden -s Skriver inte ut felmeddelanden -v Skriv ut alla icke träffade rader -w Sök efter hela ord (fgrep)

C&UNIX grep 6 grep if* Exempel grep grep \<ex grep -i ^mcc grep ch[0-9]* grep -v #

C&UNIX Fler filter, e.d. 7 Fler filter, e.d. od grep tr sort uniq comm diff wc se bytes i filen global regular expression parser translitterate characters sorterar rader rensar bort identiska rader jämför två filer skriv ut skillnader mellan filer word count

C&UNIX sed 8 sed Bygger på editorn; ed. sed-uppbyggnad sed list-of-ed-commands filenames... sed [adress]s/pattern/replacement/flag sed modifierar inte infilen. sed skriver ut alla rader, även dom som inte har modifierats.

C&UNIX sed 9 sed-kommandon Flagga Betydelse d Radera raden, läst nästa rad l Lista rader, gör icke synliga tecken synliga p Skriv ut raden q Quit r file Läs file, kopiera till output s/old/new/f Byter ut old mot new f =g Byt ut alla förekomster (på raden) f =p Print f =w file Skriv till file f =r file Läser från file y/str1/str2/ Byter ut tecken från str1 mot matchande ur str2 = Skriv ut radnummer! Utför sed-kommando enbart om raden inte är vald

C&UNIX sed 10 Argument Betydelse -f file Läser kommandon från file -n Listar endast rader som har matchats -e sed-kommandon Används för multipla för sed-instr

C&UNIX sed 11 Multipla sed-instruktioner sed s/ a/, AAA/; s/ b/, BBB/ sed -e s/ a/, AAA/ -e s/ b/, BBB/ sed s/ a/, AAA/ s/ b/, BBB/

C&UNIX sed 12 sed s/a/aaa/g infil > utfil Exempel sed Byter ut alla förekomster av a mot aaa i filen infil, och skriver resultat i filen utfil

C&UNIX sed 13 Indentering - 1 sed s/^/ / Indentering - 2a sed /./s/^/ / Indentering - 2b Fler exempel... sed /^$/!s/^/ / fil grep begin sed -n /begin/p fil grep -v begin sed -n /begin/!p byter alla a z mot A Z sed y/abcde...z/abcde...z/ Tyvärr, inga intervall.

C&UNIX sed 14 Flera exempel forts... lista rad 20 30 sed -n 20,30p tail +11 sed 1,10d fil tabort från första t.o.m. första tomma raden sed 1,/^$/d fil tabort raden med regular sed /regular/d tabort alla rader med regular sed g/regular/d tabort alla mellan borjan och slut sed /borjan/,/slut/d tabort sista raden sed $d fil

C&UNIX sed 15 Flera exempel forts... där regular expression finns, byt ut regular mot complex sed g/regular expression/s/regular/complex/g åäö HTML-varianter sed s/å/\å/g s/ä/\ä/g s/ö/\ö/g s/å/\å/g s/ä/\ä/g s/ö/\ö/g bytut <company-list> mot innehållet i filen company-list sed /~<company-list>/r company-list /~<company-list>/d

C&UNIX sed 16 > cat text1 sed-script Zonker Harris, Long Beach CA Mickey Mouse, Anaheim CA Elvis Presley, Memphis TN Bill Clinton, Washington DC > cat s2in s/ CA/, California/ s/ TN/, Tenessee/ s/ DC/, District of Columbia/ > sed -f s2in text1 Zonker Harris, Long Beach, California Mickey Mouse, Anaheim, California Elvis Presley, Memphis, Tenessee Bill Clinton, Washington, District of Columbia

C&UNIX sed 17 Gruppering av kommandon { } används för gruppering av sed-kommandon. Inom intervallet borjan slut, tabort alla tomma rader /borjan/,/slut/{ /^$/d } Inom intervallet borjan slut, tabort alla tomma rader och byt ut a, AAA... /borjan/,/slut/{ /^$/d s/ a/, AAA/ s/ b/, BBB/ }

C&UNIX awk 18 awk awk - ursprungsversionen nawk - newawk gawk - GNU s variant av awk

C&UNIX awk 19 awk intro Options Betydelse -F Sätter om sklijetecknet, från standard white space -f Läser in awk pattern command från fil awk [-F] {-f ProgFile Program } [file] Ingen file STDIN Ingen pattern, processar varje rad Inget action, skriver ut raden ls -l awk {print $9,$5}

C&UNIX awk 20 tilldelning utskrift awk actions var = uttryck print printf (som i C) flow of control if for while... (som i C) inbyggda funktioner cos sin log exp int length inbyggda varuabler NF antal fält på nuvarande rad NR sekvensnummret för nuvarande rad FS (in) fältseparator RS (in) record separator OFS (ut) fälseparator ORS (ut) record separator OFMT (ut) format för siffror (%g)

C&UNIX awk 21 Hello world awk {print "hello world"} test Man måste ange ett filnamn test efter, annars vill awk läsa från STDIN. $ cat test2 Hello world $ awk {print } test2 awk BEGIN {print "hello world" } BEGIN-gör detta först kolla sedan efter infil.

C&UNIX awk 22 Hittar tomma rader Pattern Matching awk /^$/ {print "Empty line" } fil Hittar lite mer... $ cat awkscr # Titta en kommentar! /[0-9]+/ { print "En siffra" } /[A-z]+/ { print "En bokstav" } /^$/ { print "Tom rad" } $ awk -f awkscr

C&UNIX awk 23 Records och Fält awk { print $1 $2 $3 } fil awk { print $1,$2,$3 } fil,:at ger mellanrum (OFS) i utskriften. Byte av separator awk -F, {print $5 $3 $0} fil

C&UNIX awk 24 awk /MA/ { print $4 } Skriver ut fjärde kollumnen på alla rader som innehåller MA. awk $2 ~ /MA/ { print $4 } Skriver ut fjärde kollumnen på alla, där MA finns i andra kollumnen.

C&UNIX awk 25 Tilldelning Expressions z = "Hello" q = "Hello " "world" # q = "Hello world" a = $1 x = 1 y = x + 1

C&UNIX awk 26 /^$/ { print ++x } Räknar tomma rader Räknar upp och skriver ut antalet tomma rader. /^$/ { ++x } END { print x } Räknar först upp, sedan på slutet, skriver ut antalet tomma rader.

C&UNIX awk 27 OFS FS BEGIN { FS = "," ; OFS = "\t"} { print $1, $2 } END { print NR "rader utskrivna" } NR är en räknare för antalet inlästa records.

C&UNIX awk 28 Checkbook BEGIN { FS = "\t" } NR == 1 { print "Ingående: \t" $1 balance = $1 next } { print $1,$2,$3 print balance -= $3 } END { print "Kvar:\t" balance } Datafil 1000 125 Affär 42 127 Hyra 47 Resultat Ingående: 1000 125 Affär 42 958 127 Hyra 47 911 Kvar: 911

C&UNIX awk 29 sed och awk tillsammans bystate awk -F, { print $4 ", " $0 } $* sort awk -F, $1 == LastState { print "\t" $2 } $1!= LastState { LastState = $1 print $1 print "\t" $2 } text1 Zonker Harris, 362 Trudeau Avenue, Long Beach CA Mickey Mouse, 121 Studio Boulevard, Anaheim CA Elvis Presley, Gracelands, Memphis TN Bill Clinton, Pennsylvania Avenue, Washington DC John Irvine, The Bear Pit, Vienna MN

C&UNIX awk 30 sed och awk tillsammans forts... s3sedin s/ CA/, California/ s/ MN/, Maine/ s/ TN/, Tenessee/ s/ DC/, District of Columbia/ Kommando sed -f s3sedin text1 bystate Resultat: California Mickey Mouse Zonker Harris District of Columbia Bill Clinton Maine John Irvine Tenessee Elvis Presley