Startpagina > Tekstverwerking en zoeken > sed

sed -n: Alleen specifieke regels weergeven

sed is een stream-editor die wordt gebruikt om tekstbestanden of tekststreams die via een pijp worden doorgegeven, te bewerken. Met name de '-n' optie onderdrukt het standaardgedrag van sed om alle regels weer te geven (de inhoud van de pattern space weergeven) en zorgt ervoor dat alleen regels die expliciet met het 'p' (print) commando zijn gespecificeerd, worden weergegeven, wat zeer nuttig is voor het extraheren van specifieke regels. Dit werkt vergelijkbaar met grep, maar maakt complexere teksttransformaties en extracties mogelijk.

Overzicht

Het sed commando is een krachtig hulpmiddel voor het bewerken van tekststreams. De '-n' optie deactiveert het standaardgedrag van sed om alle regels weer te geven, waardoor gebruikers selectief alleen de gewenste regels kunnen weergeven via specifieke commando's zoals het 'p' (print) commando. Dit maakt nauwkeurige tekstverwerking mogelijk in diverse situaties, zoals logbestandanalyse en het extraheren van specifieke gegevens.

Belangrijkste kenmerken

  • Onderdrukking van standaarduitvoer
  • Selectieve weergave van specifieke regels
  • Patroonmatching op basis van reguliere expressies
  • Gebruik van scriptbestanden mogelijk

Belangrijkste opties

Het sed commando biedt diverse opties, maar hier worden de meest gebruikte commando's in combinatie met de '-n' optie beschreven.

Uitvoercontrole en patroonmatching

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`sed` Voer het commando uit.

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

Gebruiksvoorbeelden

Diverse voorbeelden van tekstverwerking met sed -n.

Specifieke regel weergeven

sed -n '5p' filename.txt

Geeft alleen de 5e regel van het bestand weer.

Regelbereik weergeven

sed -n '10,20p' filename.txt

Geeft de regels van de 10e tot de 20e regel van het bestand weer.

Regels met reguliere expressie weergeven

sed -n '/error/p' logfile.log

Geeft alleen regels weer die de tekenreeks 'error' bevatten.

Vervangen van overeenkomende regels en weergeven

sed -n 's/old/new/p' filename.txt

Geeft alleen de regels weer waarin 'old' is vervangen door 'new'.

Alleen de eerste overeenkomende regel weergeven

sed -n '/pattern/{p;q}' filename.txt

Geeft alleen de eerste regel die overeenkomt met het patroon weer en beëindigt sed.

Lege regels verwijderen en weergeven

sed -n '/^$/!p' filename.txt

Geeft alleen regels weer die geen lege regels zijn uit het bestand.

Tips & Aandachtspunten

Handige tips en aandachtspunten bij het gebruik van sed -n.

Verschil met grep

  • grep geeft simpelweg regels weer die overeenkomen met een patroon, terwijl sed -n aanvullende bewerkingen (zoals vervanging) kan uitvoeren op overeenkomende regels voordat deze worden weergegeven.
  • sed -n kan complexere voorwaarden verwerken dan grep (bijvoorbeeld alleen patronen matchen binnen een specifiek regelbereik).

Prestatieoverwegingen

Bij het verwerken van grote bestanden is sed geheugenefficiënt omdat het het bestand regel voor regel leest en verwerkt. Complexe reguliere expressies kunnen echter de prestaties beïnvloeden.

Veelgebruikte patronen

  • 'p': Weergeven van overeenkomende regels
  • 's/regex/replacement/': Vervangen van overeenkomende delen
  • 'd': Verwijderen van overeenkomende regels (echter, bij gebruik met '-n' verwijdert 'd' de regel uit de pattern space, dus als er geen 'p' commando is, wordt er niets weergegeven)

Hétzelfde categoriecommando