sed Commando in Linux met voorbeelden

De opdracht sed in Linux is een krachtige stream-editor waarmee u eenvoudige teksttransformaties kunt uitvoeren op een invoerstroom (een bestand of invoer uit een pijplijn). Het wordt veel gebruikt voor het zoeken, vinden en vervangen, invoegen en verwijderen van tekst in bestanden. In tegenstelling tot eenvoudige teksteditors verwerkt sed gegevens in een pijplijn en is vooral handig voor het automatiseren van tekstmanipulaties in shell-scripts.

De belangrijkste kenmerken van sed zijn onder meer het vermogen om:

  • Vervang tekst binnen een bestand met reguliere expressies.
  • Verwijder lijnen op basis van specifieke patronen.
  • Voeg tekst in of voeg deze toe aan specifieke regels.
  • Transformeer of converteer tekst op basis van complexe patronen.

Deze handleiding geeft voorbeelden om het praktische gebruik van de opdracht sed in Linux te demonstreren, en laat zien hoe deze kan worden gebruikt voor verschillende tekstverwerkingstaken.

Sleutelsyntaxis en opties van het Sed-commando

Voordat we ons verdiepen in de voorbeelden, is het essentieel om de primaire syntaxis van het sed-commando te begrijpen:

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

Hier zijn enkele veelgebruikte opties:

  • -e: Maakt het gebruik van meerdere opdrachten mogelijk.
  • -n: Onderdrukt het standaardgedrag bij het afdrukken van elke regel.
  • -i: Bewerkt bestanden op hun plaats (wees voorzichtig omdat het originele bestand wordt gewijzigd).

Basisvoorbeelden van Sed Command in Linux

Basistekstvervanging

Een van de meest voorkomende toepassingen van sed is het vervangen van tekst.

echo "Welcome to Linux" | sed 's/Linux/Unix/'

Uitgang:

Welcome to Unix

Mondiale vervanging

Standaard vervangt sed de eerste keer dat het voorkomt in een regel. Om alle voorkomens te vervangen, gebruikt u de 'g'-vlag.

echo "Apples are better than apples" | sed 's/apples/oranges/g'

Uitgang:

Apples are better than oranges

Lijn verwijderen

sed kan ook lijnen verwijderen op basis van een specifiek patroon.

echo -e "apple\norange\nbanana" | sed '/orange/d'

Uitgang:

apple
banana

Tekst invoegen en toevoegen

U kunt voor of na een patroonmatch nieuwe tekstregels introduceren.

echo "Hello" | sed 'i\Good Morning'

Uitgang:

Good Morning
Hello

Teksthoofdletter wijzigen

Met sed kunt u de tekstomtrek manipuleren met de y-functie. Laten we een voorbeeld bekijken van het omzetten van kleine letters naar hoofdletters:

echo "hello world" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'

Uitgang:

HELLO WORLD

Geavanceerd gebruik van het Sed-commando in Linux

Tekstvervanging met meerdere patronen

Voor meerdere patronen kunt u -e gebruiken om verschillende vervangingsopdrachten aan elkaar te koppelen.

echo "Welcome to Linux. I love Linux." | sed -e 's/Linux/Unix/' -e 's/love/adore/'

Uitgang:

Welcome to Unix. I adore Linux.

Voorwaardelijke tekstvervanging

Met sed is het mogelijk om tekst te vervangen op basis van bepaalde voorwaarden met behulp van adressen.

echo -e "apple\nbanana\ncherry" | sed '/banana/s/$/ - favorite fruit/'

Uitgang:

apple
banana - favorite fruit
cherry

Sed gebruiken met reguliere expressies

Benut de kracht van reguliere expressies om complexe patronen te matchen.

echo "Price is $100" | sed 's/$[0-9]*/& (USD)/'

Uitgang:

Price is $100 (USD)

Terugverwijzingen voor complexe vervangingen

Terugverwijzingen kunnen worden gebruikt om terug te verwijzen naar delen van het overeenkomende patroon.

echo "The white cat and black dog" | sed 's/\(white\|black\) \(cat\|dog\)/\2 \1/'

Uitgang:

The cat white and dog black

In-place bewerken met de optie -i

Een van de krachtige functies van sed is de mogelijkheid om bestanden rechtstreeks te bewerken. Dit kan worden bereikt met de optie -i, maar maak altijd een back-up van het originele bestand voordat u directe wijzigingen aanbrengt.

echo "Original text" > temp.txt
sed -i 's/Original/Modified/' temp.txt
cat temp.txt

Uitgang:

Modified text

Conclusie

Het begrijpen en beheersen van de opdracht sed kan uw vermogen om tekstbestanden in Linux te manipuleren en verwerken aanzienlijk vergroten. Door de gegeven voorbeelden te oefenen, kunt u leren hoe u op efficiënte wijze algemene tekstverwerkingstaken kunt uitvoeren, repetitieve bewerkingstaken kunt automatiseren en sed kunt integreren in uw scriptworkflow. Regelmatig experimenteren met verschillende sed-opties en -opdrachten zal uw kennis verdiepen en u in staat stellen het volledige potentieel ervan te benutten. Geniet van de veelzijdigheid en kracht die sed biedt voor uw Linux-tekstverwerkingstaken.

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)

Plaats een reactie