Overzicht van sed
`sed` leest regels één voor één uit de invoerstream en verwerkt deze volgens de opgegeven regels (script), waarna de resultaten naar de standaarduitvoer worden gestuurd. Het oorspronkelijke bestand wordt standaard niet gewijzigd; om de wijzigingen op te slaan, moet je de omleiding (`>`) gebruiken of de `-i` optie toepassen.
Hoofdfuncties van sed
`sed`-opdracht wordt voornamelijk gebruikt voor de volgende doeleinden:
Belangrijkste Toepassingsgebieden
- Tekst vervangen: Vervangt specifieke tekenreeksen in een bestand door andere tekenreeksen. (De meest voorkomende toepassing)
- Regels verwijderen/toevoegen: Verwijdert regels die een specifiek patroon bevatten of voegt nieuwe regels op een specifieke plaats toe.
- Patroon-matching en uitvoer: Geeft alleen de regels weer die overeenkomen met een specifiek patroon of verwerkt alleen een specifiek bereik van regels.
- Bestandsindeling wijzigen: Converteert de indeling van tekstbestanden of herschikt gegevens.
- Scriptautomatisering: Speelt een cruciale rol in shell-scripts voor batchverwerking van grote tekstbestanden.
Basisstructuur van sed
`sed` heeft de basisopdrachtstructuur `sed [OPTIES] 'script' [INVOER_BESTAND...]`. Hier is 'script' in de vorm `[adres]commando[argument]`, waarbij het belangrijkste commando `s` (substitutie) is.
Belangrijkste sed Opdrachtopties
`sed`-opdracht biedt verschillende opties voor invoerverwerking, scriptopgave, uitvoercontrole, waardoor flexibele tekstbewerking mogelijk is.
1. Script- en bestandverwerkingsopties
2. Vervangings (s) Opdrachtvlaggen
3. Overige nuttige opdrachten
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`sed` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Voorbeelden
Leer hoe je de inhoud van tekstbestanden effectief kunt doorzoeken, vervangen en verwijderen met verschillende voorbeelden van de `sed`-opdracht.
Vervang alle 'old' door 'new' in een bestand
sed 's/old/new/g' example.txt
Wijzigt alle woorden 'old' in het bestand `example.txt` naar 'new' en toont de resultaten op de standaarduitvoer.
Vervang tekenreeks direct in het originele bestand
sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf
Wijzigt 'DEBUG=true' naar 'DEBUG=false' in het bestand `config.conf` en maakt een back-up van het originele bestand (`.bak` extensie).
Verwijder regel met een specifiek regelnummer
sed '5d' log.txt
Verwijdert de 5e regel uit het bestand `log.txt` en toont de resultaten.
Verwijder regels binnen een bereik
sed '10,20d' document.txt
Verwijdert de inhoud van regel 10 tot 20 in het bestand `document.txt` en toont de resultaten.
Verwijder regels met een specifiek patroon
sed '/WARNING/d' errors.log
Verwijdert alle regels die het woord 'WARNING' bevatten uit het bestand `errors.log` en toont de resultaten.
Voeg een headerregel toe aan de inhoud van een bestand
sed '1i\Naam,Leeftijd,Stad' data.csv
Voegt een nieuwe headerregel bovenaan het bestand `data.csv` toe.
Verwijder lege regels
sed '/^$/d' text.txt
Verwijdert alle lege regels uit het bestand `text.txt`. `^$` is de reguliere expressie voor lege regels.