Kommandoen sed (stream editor) i Unix er en kraftfuld teksteditor, der behandler data baseret på en række kommandoer specificeret af regulære udtryk. Det giver brugerne mulighed for at søge efter og manipulere mønstre i tekstfiler eller datastrømme på en ikke-interaktiv måde.
Her er en oversigt over sed-kommandoen:
1. Invokation :Sed påkaldes på kommandolinjen ved at skrive kommandoen "sed" efterfulgt af muligheder, parametre og kommandoscriptet.
2. Valgmuligheder :Sed giver forskellige muligheder for at tilpasse sin adfærd, såsom:
- -f :Specificerer filen, der indeholder sed-scriptet.
- -i :Redigerer filer på plads (vær forsigtig, når du bruger dette!).
- -n :Undertrykker standard output; nyttigt, når det kombineres med udskriftskommandoer.
- -r :Aktiverer udvidede regulære udtryk.
3. Kommandoer :Sed bruger en række kommandoer til at udføre forskellige redigeringshandlinger. Nogle almindelige kommandoer inkluderer:
- s :Erstat et mønster med et andet.
- g :Anvend substitutionen globalt på hver matchende linje.
- p :Udskriv den aktuelle linje.
- d :Slet den aktuelle linje.
- i :Indsæt en linje før den aktuelle linje.
- a :Tilføj en linje efter den aktuelle linje.
4. Regulære udtryk :Sed bruger regulære udtryk til at matche mønstre i teksten. Regulære udtryk er kraftfulde værktøjer, der giver mulighed for kompleks mønstermatchning.
Her er nogle eksempler på, hvordan sed kan bruges:
1. For at erstatte "Unix" med "Linux" i en fil kaldet "text.txt":
```
sed 's/Unix/Linux/g' text.txt
```
2. For at slette alle linjer, der indeholder ordet "fejl":
```
sed '/error/d' log.txt
```
3. For kun at udskrive linjer, der starter med "Dette":
```
sed '/^This/p' input.txt
```
4. For at indsætte en linje "Overskrift " før hver forekomst af "Kapitel" i en fil:
```
sed '/Chapter/i\Overskrift ' book.txt
```
Sed-kommandoen er et alsidigt værktøj til tekstmanipulation og databehandling. Det kan være udfordrende i starten, men når du først mestrer dets regulære udtryk og kommandoer, bliver det et meget kraftfuldt værktøj til at automatisere gentagne tekstredigeringsopgaver.