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.