Startpagina > Tekstverwerking en zoeken > sed

sed: Tekststream-editor

sed (stream editor) is een krachtige Unix-utility voor het bewerken van tekststromen. Het voert transformaties, filtering, verwijdering, invoeging en andere bewerkingen uit op invoer die via bestanden of pipes wordt doorgegeven, met behulp van reguliere expressies. Het is geoptimaliseerd voor niet-interactieve bewerkingen en wordt veel gebruikt voor geautomatiseerde tekstverwerking in scripts.

Overzicht

sed leest de invoerstroom (bestand of standaardinvoer) regel voor regel, past het opgegeven script (commando) toe en stuurt het resultaat naar de standaarduitvoer. Het wordt voornamelijk gebruikt voor het wijzigen van de inhoud van tekstbestanden, het zoeken en vervangen van specifieke patronen, en het verwijderen van regels.

Belangrijkste functies

  • Krachtige patroonherkenning met reguliere expressies
  • Tekstvervanging (substitution)
  • Regelverwijdering (deletion)
  • Regelinvoeging en -toevoeging (insertion/appending)
  • Directe wijziging van bestandsinhoud (-i optie)

Belangrijkste opties

De belangrijkste opties van het sed-commando regelen de manier waarop scripts worden opgegeven of het uitvoergedrag.

Script- en gedragscontrole

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`sed` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Leer tekstverwerkingstechnieken met verschillende gebruiksvoorbeelden van sed.

Specifieke tekst vervangen

sed 's/oude_tekst/nieuwe_tekst/g' bestandsnaam.txt

Vervangt alle voorkomens van 'oude_tekst' door 'nieuwe_tekst' in het bestand. De 'g' vlag vervangt alle overeenkomsten op één regel.

Regels met een specifiek patroon verwijderen

sed '/error/d' logbestand.txt

Verwijdert alle regels die het woord 'error' bevatten.

Bestandsinhoud direct wijzigen

sed -i.bak 's/DEBUG=true/DEBUG=false/g' config.txt

Wijzigt 'DEBUG=true' naar 'DEBUG=false' in het originele 'config.txt' bestand en maakt een back-upbestand met de extensie '.bak'.

Alleen de eerste 5 regels afdrukken

sed -n '1,5p' data.txt

Drukt alleen de eerste 5 regels van het bestand af. Gebruikt de '-n' optie en het '1,5p' commando.

Lege regels verwijderen

sed '/^$/d' document.txt

Verwijdert volledig lege regels uit het bestand.

Tips & Aandachtspunten

Aandachtspunten en tips voor efficiënt gebruik van sed.

Misvatting over de sed -d optie

Met betrekking tot de verstrekte hint 'sed-d', is `-d` geen geldige opdrachtregeloptie voor `sed`. `sed`-commando's gebruiken opties zoals `-e`, `-f`, `-i`, `-n`, enzovoort. Als u `sed -d` uitvoert, zal `sed` `-d` interpreteren als een bestandsnaam of een foutmelding voor een onbekende optie genereren.

Correct gebruik van het d commando

`d` is een commando dat binnen een `sed`-script wordt gebruikt om specifieke regels te verwijderen. Bijvoorbeeld, `sed '/patroon/d' bestand` verwijdert alle regels die 'patroon' bevatten. Dit is een volledig ander concept dan de opdrachtregeloptie `-d`.

Voorbeeld van het gebruik van het d commando

sed '/te_verwijderen_string/d' input.txt > output.txt

Verwijdert regels die 'te_verwijderen_string' bevatten uit het bestand.

Gebruik van reguliere expressies

De kracht van sed ligt in reguliere expressies. Door verschillende metatekens (zoals `^`, `$`, `*`, `+`, `?`, `.` enz.) te beheersen, kunt u complexe patroonherkenning en vervanging uitvoeren.

  • `^`: Begin van de regel
  • `$`: Einde van de regel
  • `.`: Elk enkel teken
  • `*`: Het voorgaande teken wordt nul of meer keer herhaald
  • `s/oud/nieuw/g`: Vervang alle 'oud' door 'nieuw'
  • `/patroon/d`: Verwijder regels met 'patroon'

Maak er een gewoonte van om back-ups te maken

Wanneer u bestanden direct wijzigt met de `-i` optie, is het raadzaam om altijd een back-upsuffix op te geven om verlies van het originele bestand te voorkomen (bijv. `sed -i.bak ...`).



Hétzelfde categoriecommando