Sed is een acroniem van Stream EDitor. Het is een computerprogramma dat behoort tot de standaardset van applicaties onder Unix en GNU/Linux (en varianten). Ook voor andere besturingssystemen bestaan er ports van dit programma.

Sed is niet bedoeld als interactieve editor -hoewel het, met enige moeite, wel als zodanig zou kunnen worden gebruikt- maar wordt meestal, op de unix-manier, gebruikt in pipe-structuren.

In het geval van sed betekent dit: lees uitvoer van een ander commando of van een bestand, bewerk dit volgens een aantal regels (het sed-script) en stuur de uitvoer naar een ander programma of naar een bestand. sed maakt gebruik van een simpele en krachtige commando-set en kent een eenvoudige branch- en variabelen-structuur. Desondanks is de taal Turing-compleet.

Sed maakt gebruik van zeer uitgebreide en krachtige reguliere expressies.

Belangrijke kenmerken van sed: regel-georiënteerd: alle commando's worden losgelaten op een regel alvorens een volgende regel wordt gelezen en verwerkt; De in bewerking zijnde regel wordt opgeslagen in een zogenaamde pattern space waarin eventuele bewerkingen plaatsvinden; een zogenaamde hold space kan worden gebruikt om voorgaande regels op te slaan; door middel van speciale commando's kunnen pattern space en hold space worden uitgewisseld; sed kent een goto label commando; er kunnen labels worden gedefinieerd, te gebruiken in goto en conditionele commando's; de enige variabelen die sed kent zijn de positionele velden binnen een reguliere expressie;

Commando's [''addr''][''command''] meerregelige commando's [''line-addr''][''command''] eenregelige commando's

addr is een regelnummer of een reguliere expressie

command kan zijn: # - commentaar (alleen op positie 1 van de regel) s - Substitutie d - verwijder (delete) volledige regel a - voeg de volgende regel(s) toe (append) achter de huidige i - voeg de volgende regel(s) toe (insert) voor de huidige c - vervangen (change) y - transformeren p - geef de huidige regel weer (print) n - ga naar de volgende regel (next) r - lees (read) een ander bestand w - schrijf (write) naar een bestand

Voorbeelden sed -n '3,4p' /etc/passwd (Toont enkel de 3e en 4e regel van de passwd file)

echo wokopedoa | sed s/o/i/ Wijzigt het eerste voorkomen van o in een i, output: wikopedoa

echo wokopedoa | sed s/o/i/g Wijzigt alle voorkomens van o in i, output: wikipedia

echo aaa-bbb | sed 's+\(.*\)-\(.*\)+\2-\1+' verwissel tekst aan beide zijden van min-teken

Categorie:Opensourcesoftware en vrije software Categorie:Unix Categorie:Cross-platform-software