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

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

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

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

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

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

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande

Programmering i C++ Kompilering från kommandoraden

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

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

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

Kommandotolken hittar du under Start->Program->Tillbehör->Kommandotolken

Kort om World Wide Web (webben)

Textbearbetning i skalet och man-sidor

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

kommando -fl argument

729G09 Språkvetenskaplig databehandling

Datorsystem och programmering

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

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

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

Operativsystem och användargränssnitt

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

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

Egna genvägar. Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll

Föreläsning 2. Operativsystem och programmering

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

MS-DiskOperativSystem Sammanfattning och Övningar

Handbok Simond. Peter H. Grasch

SNABB-GUIDE FÖR GOOGOL T1 PROGRAMMERING.

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

Webbgenvägar. Krishna Tateneni Yves Arrouye Översättare: Stefan Asserhäll

E-POST3 Ett lättanvänt e-postprogram med stöd för talsyntes

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

LOTTA MANUAL. t.o.m. version Cederlund

Att komma igång. Föreläsning 1

3. Programbanken. Välkommen till D

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

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

Avslutning. Kapitel Komprimering av filer

Icarus - Enkelt Skript. Manual revision 1.2, Keylogic AB.

Switch Driver 4. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

Versionshantering med Git. Henrik Henriksson 17 april 2018

Introduktion till Linux. TDDE23 Funktionell och imperativ programmering, del 1 Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

TDP005 Projekt: Objektorienterat system

EVO DEV. EvodevExcel.GarpReportAddin

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

KURSMÅL WINDOWS STARTA KURSEN

Steg 1 Minnen, mappar, filer Windows 7

Möte 9: Relationer mellan körande processer - (PI)

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

Program. Kapitel make Program Interpreterande och kompilerande program

Installation av atmel Studio på mac / linux

Installation OBS! Jag utgår från att alla diskar utom just systemdisken är fysiskt bortkopplade under installationen.

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

Decipher och Datataker DT100

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

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

ALVA BC640 Feature Pack

Inledande programmering med C# (1DV402) Introduktion till C#

Labb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Introduktion till Unix och Linux

Allmänt om programvaror och filer i Windows.

Använda Python Laboration 1 GruDat, DD1344

kl Tentaupplägg

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Tactix Touchpad. Artikelnummer: 99201, v

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

TDP003 Projekt: Egna datormiljön

Switch Driver 5. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

LABORATIONSRAPPORT Operativsystem 1 Linux

MANUAL. Innehållsförteckning

Grundläggande datalogi - Övning 1

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

TDDI16: Datastrukturer och algoritmer

Tolv dagar med Microsoft Office Excel 2007

Föreläsning 1 Unix. Datorer och datoranvändning Föreläsningar 2018/19. Operativsystem. Unix

Editering, Kompilering och Exekvering av Javaprogram

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

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Föreläsning 13. In- och utmatning

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Inställningstips. Visuella anpassningar Windows

Steg 1 Minnen, mappar, filer Windows 8

BILDBOK. Programmet stöder talsyntes SAPI 4 och SAPI 5. Programmet kan spela upp ljudfiler (*.wav) och (*.mp3)

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

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Manual för Diabas, version 1.2

Introduktion till git

Instruktion för laboration 1

Tango Touch. Innehåll

C konstruerades i början på sjuttiotalet av Dennis Ritchie vid Bell Laboratories.

MANUAL. Innehållsförteckning

Index-direct-Braille 1

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Får jag be om ordet!

Transkript:

Sed och Awk Linuxadministration II 1DV421

Onlinematerial http://www.gnu.org/software/sed/manual/sed.html Manual för GNU sed http://www.gnu.org/software/gawk/gawk.html Manual för GNU awk

Historia för sed Enkelt och kraftfullt program för att editera strömmar med textdata Skapades från början som ett program för AT&T Unix av Lee E. McMahon från Bell Labs Finns numera till i princip alla operativsystem som använder sig av en kommandohanterare (t.ex. Linux, Windows, osv)

Funktion Icke-interaktiv texteditor Läser rad för rad och utför kommandon Bara en rad i minnet åt gången Klarar väldigt stora textfiler

Exempelkommandon sed -e 's/gammalt/nytt/g' input.txt > output.txt Detta är det enklaste sättet som man använder sed Läser varje rad i input.txt och ersätter gammalt med nytt Den text som sedan genereras läggs i output.txt De olika delarna s står för substitute, alltså ersätt g i slutet av kommandot står för global, dvs att varje rad i filen ska påverkas Detta är det absolut vanligaste sättet att använda sed Under UNIX är det vanligt att man använder en pipe för att dirigera data in till sed Ex../program sed -e 's/gammalt/nytt/g

Ta bort rader Du kan även göra andra operationer förutom att byta ut delar av text Exempel, ta bort rader sed -e '/^ *$/d' infil.txt Tar bort rader som är tomma eller bara innehåller space

Mera exempel Mer exempel ^ matchar början på raden $ matchar slutet på raden * matchar inga upp till oändligt antal bokstäver d tar bort raden om den matchas betyder eller, kalle olle matchar kalle eller olle? Efter en bokstav betyder finns eller finns inte. Kall?e matchar Kalle och Kale + matchar en eller flera bokstäver som är samma: he+j matchar hej, heej, heeej, osv. innebär vilket tecken som helst Tecken innanför [ och ] matchar vilket som helst av de tecknen, dock bara ett ( och ) används för att lägga in separata uttryck i andra uttryck Vissa moderna uttryck måste köras med växeln -E

Exempel forts. [^ ] matchar alla tecken utom den som står efter ^. [^a] matchar då alla tecken utom a. "[hk]+att" matchar "hatt", katt", "hhatt", khatt", hkatt", kkkhatt" etc. "[hk]?att" matchar "hatt", katt" och "att "([kk]att) ([hh]und)" matchar katt", Katt", hund" och Hund Specialtecken måste escapeas med \ Om du vill matcha / som är ett tecken som sed använder så måste det skrivas \/

Exempel forts. Skriva ut rad 1 sed -n 1p fil.txt Skriv ut rad 4-9 sed -n 4,9p somefile.txt

Specialtecken \t \n \e tab enter escape Även <, >, \ osv måste escapeas

Ännu mer exempel Ett exempel till Varje rad som börjar med ett space ska flyttas upp och läggas som fortsättning på raden innan Före Efter Detta är ett test Detta är också ett test Detta är ett test Detta är också ett test Scriptet för att göra detta är sed 'N;s/\n / /;P;D; N lägger till nästkommande rad i minnet s ersätter (som jag visade tidigare) \n matchar på först return (visas som \n) och ett space mellan / och nästa / ersätter alltså med ett space P skriver ut översta raden i minnet, i detta fallet då allt eftersom vi tagit bort enter-slaget och därmed bara har en rad D tar bort raden ur minnet och kör scriptet igen

Historia för awk Awk är en akrynom av Alfred Aho, Peter Weinberger, och Brian Kernighan Awk var ett program som skrevs för de tidiga versionerna av UNIX, närmare bestämt 1977

Exempel Skriva ut vissa kolumner awk {print $1, $2} filnamn.txt Skriver ut kolumn 1 och 2 $0 innebär alla kolumner Ex Hej jag heter Stefan. Detta skulle då skriva ut Hej jag enligt följande exempel På detta viset kan du skriva ut valfria kolumner ur t.ex. listor

Mera exempel Dokument med annan avskiljare Det går även att använda awk om man inte vill ha blanksteg som avskiljare Ex 1,2,3,olle,kalle pelle nisse Här ska de två sista kolumerna skrivas ut, de är avskilda med kommatecken Gör med växeln -F awk F, {print $4,$5} filnamn.txt Resultatet blir olle kalle pelle nisse

Lathundar för reguljära uttryck och sed http://regexlib.com/cheatsheet.aspx http://www.ida.liu.se/~tddb71/resurser/resurs-relathund.sv.shtml http://www.gnu.org/software/sed/manual/sed.html

Demo