Kommandot sed (strömredigerare) i Unix är en kraftfull textredigerare som bearbetar data baserat på en serie kommandon som specificeras av reguljära uttryck. Det tillåter användare att söka efter och manipulera mönster i textfiler eller dataströmmar på ett icke-interaktivt sätt.
Här är en översikt över kommandot sed:
1. Anrop :Sed anropas på kommandoraden genom att skriva kommandot "sed" följt av alternativ, parametrar och kommandoskriptet.
2. Alternativ :Sed erbjuder olika alternativ för att anpassa sitt beteende, till exempel:
- -f :Anger filen som innehåller sed-skriptet.
- -i :Redigerar filer på plats (var försiktig när du använder detta!).
- -n :Undertrycker standardutgången; användbar i kombination med utskriftskommandon.
- -r :Aktiverar utökade reguljära uttryck.
3. Kommandon :Sed använder en serie kommandon för att utföra olika redigeringsoperationer. Några vanliga kommandon inkluderar:
- s :Byt ut ett mönster med ett annat.
- g :Använd ersättningen globalt på varje matchande rad.
- p :Skriv ut den aktuella raden.
- d :Radera den aktuella raden.
- i :Infoga en rad före den aktuella raden.
- a :Lägg till en rad efter den aktuella raden.
4. Reguljära uttryck :Sed använder reguljära uttryck för att matcha mönster i texten. Reguljära uttryck är kraftfulla verktyg som möjliggör komplex mönstermatchning.
Här är några exempel på hur sed kan användas:
1. För att ersätta "Unix" med "Linux" i en fil som heter "text.txt":
```
sed 's/Unix/Linux/g' text.txt
```
2. För att ta bort alla rader som innehåller ordet "fel":
```
sed '/error/d' log.txt
```
3. För att bara skriva ut rader som börjar med "Detta":
```
sed '/^This/p' input.txt
```
4. För att infoga en rad "Rubrik " före varje förekomst av "Kapitel" i en fil:
```
sed '/Chapter/i\Rubrik ' book.txt
```
Kommandot sed är ett mångsidigt verktyg för textmanipulering och databehandling. Det kan vara utmanande till en början, men när du väl behärskar dess reguljära uttryck och kommandon blir det ett mycket kraftfullt verktyg för att automatisera repetitiva textredigeringsuppgifter.