Sed
står for stream editor. Det er en kommandolinjebasert editor for Linux. Populær bruk av sed er for å redigere fil(er) som en del av et automatiseringsskript i Linux, som vanlig krever redaktører aktiv brukerinndata og kan ikke redigere filer utenfor redigeringsskjermene. Sed brukes oftest for å finne og erstatte fra kommandolinjen.
Denne typen tekstredigering kan også kategoriseres som en ikke-interaktiv tekstredigerer.
La oss se noen vanlige alternativer for å redigere filer ved hjelp av Sed. Vi tar følgende fil som eksempel:
$: cat test.txt En rask brun hund hoppet over den late katten. Linux operativsystem. Skogen i nærheten av mitt sted har en katt så vel som ulv.
Søk og erstatt
For å søke etter en streng i en fil og erstatte med en annen streng, kjør:
sed -i "s/cat/fox/g" test.txt
Her, den -Jeg
flagget instruerer sed om å skrive endringene til filen. Uten dette flagget, sed
vil bare vise filen med den endrede strengen.
I sitatene har vi s/katt/rev/g
. De s
er for søk og erstatt-kommandoen til sed
. Så har vi strengen som skal søkes i, som er katt
. Deretter strengen for å erstatte den med, dvs. rev
. Til slutt har vi det valgfrie g
, som instruerer sed
for å erstatte alle forekomster på alle linjene i filen. Uten g
, vil sed kun erstatte første forekomst av katt
på hver linje.
Regex kan også brukes her.
sed -i "s/f[a-z]*\./cat\./g"
Sett inn
For å sette inn tekst før en linje med en samsvarende streng, bruk:
sed -i "/cat/i Start:" test.txt
Her, katt
er den søkte strengen og Start:
er strengen som skal legges inn før linjen der den søkte strengen er funnet.
På samme måte, for å sette inn tekst etter en linje, bruk:
sed -i "/fox/a End." test.txt
Slett
For å slette en linje som inneholder en understreng, bruk:
sed -i "/Linux/d" test.txt
For å slette en linje med linjenummer, f.eks. den første linjen, bruk:
sed -i '1d' test.txt
Kombinere flere funksjoner
For å kombinere flere funksjoner, f.eks. søk og erstatt, slett, i én kommando, -e
flagg kan brukes.
sed -i -e "s/fox/cat/g" -e '2d' test.txt
? Jubel!