Terminalen del 3

Här kommer fortsättningen på min lilla terminalserie, de tidigare delarna hittar du här och här.

echo

echo är ett kommando som skriver ut det som kommer efter det till standard out, till exempel skriver kommandot: echo jag testar echo ut texten "jag testar echo" i terminalen. Vad kommandot kan vara bra till kommer ni kanske förstå nedan under avsnittet om pipelines.
 

cat

cat är en förkortning för (con)catenate som betyder "slå i hop", cat kan alltså användas för att skriva ut (en eller) flera filer efter varandra till standard out. Kommandot cat fil1 fil2 kommer att först skriva ut innehållet i fil1 och sedan innehållet i fil2 direkt i terminalen. Man kan också använda cat för att dumpa innehållet i en fil till standard out, men vill man helt enkelt läsa en fil gör man det oftast enklare med kommandot less som vi tittat på tidigare. Det går också bra att använda cat till standard in, det görs så här: cat följt av inget alls kommer att skriva ut standard in i terminalen. Kommandot cat fil1 – fil2 kommer att först skriva ut innehållet i fil1, därefter standard in och slutligen innehållet i fil2.

Pipelines

En pipeline är inget regelrätt kommando, det är ett sätt att skicka en ström vidare, till exempel från standard out till en fil eller ett program.  För att göra detta används olika specialtecken. | är det egentliga pipe-tecknet. Till exempel kan man göra så här: echo "testar en pipeline" | cat fil1 – fil2 det kommer först att skriva ut innehållet i fil1 på skärmen därefter kommer strängen "testar en pipeline" från kommandot echo att skrivas ut följt av innehållet i fil2. Med pipelines kan man också skicka saker till filer med hjälp av > och >>. Om vi använder samma exempel som ovan så kan man alltså göra så här: echo "testar en pipeline" | cat fil1 – fil2 > fil3 detta kommer att skicka innehållet i fil1 följt av strängen "testar en pipeline" och därefter innehållet i fil2 till en tredje fil kallad fil3. Om filen inte finns kommer den att skapas och om den finns kommer den att skrivas över, vill vi i stället lägga texten från fil1, standard in och texten från fil2 i slutet på fil3 gör vi så här: echo "testar en pipeline" | cat fil1 – fil2 >> fil3 detta kommer att skapa fil3 om den inte finns, eller lägga allt material i slutet på filen om den finns redan, utan att skriva över det gamla innehållet. Det går bra att på det här sättet sätta i hop i princip hur många program/kommandon som helst som läser från standard in och skriver till standard out.  Här har vi ett exempel med flera program:   echo "testar en pipeline" | cat fil1 – fil2 | grep "testar" >> fil3 detta kommando kommer att skicka alla radera som innehåller ordet "testar" i från fil1, standard out och fil2 och lägga dessa sist i fil3.
 

sed

sed är ett kanonbra kommando som låter dig klippa och klistra i en sträng. sed betyder "Stream editor". Ponera att du har två filer som bland annat innehåller ditt namn. Innehållet i dessa filer vill du skicka till en tredje fil enligt ovan, men du vill byta ut ditt efternamn mot ett annat (kanske på grund av att du gift dig :-), då använder du sed: cat fil1 fil2 | sed ‘s/Andersson/Larsson/’ > fil3 sed kommandot har som ni kan se flera delera, först kommer själva anropet av programmet sed, därpå följer en sträng inom enkelfnuttar s:et betyder "substitute" och det som kommer inom den första avdelningen inom /och/ är det som sed kommer att leta efter, i nästa avdening (också mellan /och/) kommer det som sed skall byta ut det första mot. Kommandot kommer alltså att hämta innehållet i fil1 och fil2 med cat, pipelinen skickar texten i filerna vidare till sed som byter ut alla förekomster av "Andersson" mot "Larsson" och slutligen skickas den modifierade texten till fil3 med häjlp av en ny pipeline. Det finns mycket mer än så man kan göra med sed och jag vill uppmana alla att använda kommandot man som jag tipsade om i första delen av min terminalskola i kombination med alla andra kommandon jag tipsat om här.

Se även:

Läs även andra bloggares åsikter om , ,

Leave a Comment

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

Switch to our mobile site

Page optimized by WP Minify WordPress Plugin