sed er en stream editor. En stream-editor bruges til at udføre grundlæggende tekst transformationer på en input-stream (en fil eller input fra en pipeline). Selvom det på nogle måder ligner en editor, der tillader scripted redigeringer (såsom ed), fungerer sed ved kun at få én gang til at passere input(erne) og er følgelig mere effektiv.

Men det evnen til at filtrere tekst i en stream fra stdio som gør sed meget effektiv. For at bruge sed vil jeg komme med nogle eksempler her.

Normalt bruges sed som vist her.

sed SCRIPT INPUTFIL…

Vi starter med hello world eksemplet.

Her søger vi efter hello og skifter det ud med word. Det er den mest normale måde sed bruges på. Dvs vi læser fra input filen og hvis vi finder ordet hello skifter vi det ud med world i output filen. Så sed bliver lige som et filter.

sed 's/hello/world/' input.txt > output.txt

Det kan også huske på søg/efter hvad/skift det ud med/ i din sed kommand. Så er det nemmere at huske.

Næste eksempel kommer her.  Hvis du ikke vil have en input fil og output fil, kan du bruge -i som parametre til sed det betyder den arbejder med samme fil.

sed -i 's/hello/world/' file.txt

Kommandolinje Indstillinger.

-n
–quiet
–silent

Standard udskriver sed mønsteret fundet i slutningen af hver cyklus gennem scriptet (se Sådan fungerer sed). Disse muligheder deaktiverer denne automatiske visning, og sed producerer kun output, når det udtrykkeligt bliver bedt om det via -p kommandoen.

Her vises kun linje 45 fra fil.txt filen.

sed -n '45p' fil.txt

Her her vises første linje af et.txt og den sidste linje fra filen tre.txt

sed -n  '1p ; $p' et.txt to.txt tre.txt

Uden -e eller -f-indstillinger bruger sed den første ikke-option-parameter som scriptet, og de følgende ikke-option-parametre som inputfiler. Hvis -e eller -f optioner bruges til at specificere et script, tages alle ikke-option parametre som inputfiler. Indstillingerne -e og -f kan kombineres og kan optræde flere gange (i hvilket tilfælde det endelige effektive script vil være sammenkædning af alle de individuelle scripts).

Alle disse eksempler gør det samme.

sed -e 's/hello/world/' input.txt > output.txt
sed --expression='s/hello/world/' input.txt > output.txt

echo 's/hello/world/' > myscript.sed
sed -f myscript.sed input.txt > output.txt
sed --file=myscript.sed input.txt > output.txt

 

–debug Viser hvordan sed behandler din forespørgsel

-e script

-f script-file

-i

-b  Binær filer

-s separator

–sandbox

-u uden buffer.

 

Exit status. Når sed exit sender den en exit kode.

0 alt ok
1 komandoen kan ikke fortolkes.
2 input fil kan ikke åbnes.
4 io error.

Loading

By Admin

Author: Jeg er en professionel system administrator og grundlægger af linuxboxen.dk Jeg er en ivrig Linux-elsker og open source-entusiast. Jeg bruger Ubuntu og tror på at dele viden. Bortset fra Linux, elsker musik og dyr. Jeg er en stor fan af Dire straits.

Leave a Reply

Your email address will not be published. Required fields are marked *