Het bewerken van tekstbestanden en terminaluitvoer is een dagelijkse taak voor degenen die Linux-machines beheren. Met opdrachtregelhulpprogramma's zoals sed kan een gebruiker de inhoud van een tekstbestand rechtstreeks vanuit het terminalvenster wijzigen en wijzigen.
In dit artikel zullen we het sed-commando in detail bespreken, samen met enkele essentiële voorbeelden die de kracht van het sed-hulpprogramma in Linux demonstreren.
Wat is het sed-commando?
Het sed commando, wat een afkorting is voor Stream-editor, is een opdrachtregelprogramma waarmee Linux-gebruikers op tekst gebaseerde bewerkingen kunnen uitvoeren op bestanden en terminaluitgangen. Met sed kunnen gebruikers specifieke woorden in een tekst zoeken en vervangen, een bepaald gedeelte van de uitvoer weergeven en tekstbestanden bewerken zonder ze te openen.
De drie basisbewerkingen die worden ondersteund door het sed-commando zijn:
- Invoeging
- Schrapping
- Vervanging (zoeken en vervangen)
Gevorderde gebruikers kunnen ook reguliere expressies implementeren met de opdracht sed om tekststromen efficiënter te bewerken.
De basissyntaxis van de opdracht is:
sed [opties] [patroon] [bestandspad]
...waar opties zijn de verschillende functionaliteiten van het commando, patroon is de reguliere expressie of het script dat u wilt matchen, en bestandspad is het pad naar het tekstbestand dat de tekst bevat.
10 Voorbeelden van het Linux sed-commando
Als u van plan bent een gewone Linux-gebruiker te worden, kan het handig voor u zijn om te weten hoe u bestanden moet bewerken, specifieke woorden moet zoeken en vervangen en de terminaluitvoer moet filteren. Deze sectie behandelt enkele voorbeelden van het sed-commando dat je zeker in een Linux-power-gebruiker zal veranderen.
We zullen het volgende tekstbestand gebruiken voor demonstratie in de post.
Dit is een demo-tekstbestand.
Het is een geweldig bestand dat ons allemaal zal helpen.
Het sed-commando is ook geweldig voor het bewerken van streams.
Wilt u leren hoe u de opdracht kunt gebruiken?
Dit is een andere regel in het bestand.
Dit is de derde algemene regel in het bestand.
Dit bestand wordt textfile genoemd.
Dit is een appel.
Dit is een sinaasappel.
1. Bekijk een reeks lijnen
Linux-commando's zoals head en tail voeren de eerste of de laatste tien regels van een tekstbestand uit. Maar wat als u de inhoud tussen twee specifieke regels in een bestand wilt krijgen? In dergelijke situaties kan de opdracht sed van pas komen.
Om de inhoud tussen regel 3 en 5 van het bestand uit te voeren tekstbestand.txt:
sed -n '3,5p' tekstbestand.txt
De -n flag voorkomt dat sed de patroonruimte aan het einde van elke cyclus weergeeft. U kunt ook de --rustig en --stil opties in plaats van -n. De p argument staat voor afdrukken en wordt gebruikt om de overeenkomende regels aan de gebruiker weer te geven.
Het uitvoeren van de bovengenoemde opdracht op het voorbeeldbestand levert de volgende uitvoer op.
Het sed-commando is ook geweldig voor het bewerken van streams.
Wilt u leren hoe u de opdracht kunt gebruiken?
Dit is een andere regel in het bestand.
Om de volledige bestandsinhoud uit te voeren, behalve het opgegeven bereik, gebruikt u de d vlag in plaats van p in het commando:
sed '3,5d' tekstbestand.txt
De d flag verwijdert de overeenkomende strings uit de uitvoer en geeft de rest van de inhoud weer.
Dit is een demo-tekstbestand.
Het is een geweldig bestand dat ons allemaal zal helpen.
Dit is de derde algemene regel in het bestand.
Dit bestand wordt textfile genoemd.
Dit is een appel.
Dit is een sinaasappel.
2. Geef niet-opeenvolgende regels weer
Om niet-opeenvolgende regels af te drukken tussen meerdere bereiken in het bestand:
sed -n -e '1,2p' -e '5,6p' tekstbestand.txt
Uitgang:
Dit is een demo-tekstbestand.
Het is een geweldig bestand dat ons allemaal zal helpen.
Dit is een andere regel in het bestand.
Dit is de derde algemene regel in het bestand.
De -e vlag helpt uitvoeren meerdere acties met een enkele opdracht.
3. Voeg ruimte tussen regels in
Als u om wat voor reden dan ook lege regels tussen elke regel in een tekstbestand wilt invoegen, gebruikt u de G argument met het standaard sed commando.
sed G tekstbestand.txt
Als u meerdere lege regels in de uitvoer wilt invoegen, geeft u meerdere door G argumenten gescheiden door de puntkomma (;) karakter.
sed 'G; G 'tekstbestand.txt
4. Vervang een woord in een tekstbestand
Als u elk voorkomen van een specifiek woord door een ander woord wilt vervangen, gebruikt u de s en g argumenten met het commando. De basissyntaxis voor het vervangen van woorden met de opdracht sed is:
sed s / originalword / replaceword / g bestandsnaam
Met behulp van de bovengenoemde syntaxis kunt u het woord vervangen verbazingwekkend met super in het bestand tekstbestand.txt:
sed s / amazing / super / g textfile.txt
De s argument geeft aan vervanging en de g commando wordt gebruikt om de overeenkomende inhoud te vervangen door de gespecificeerde vervangende inhoud.
Om de tweede instantie van het woord te vervangen door sed, geeft u een getal door aan de g argument. In dit geval:
sed s / amazing / super / g2 textfile.txt
Als u hoofdletters en kleine letters wilt negeren bij het vervangen van woorden, gebruikt u gi in plaats van g, waar ik betekent negeren geval.
sed s / Amazing / super / gi textfile.txt
Verwant: Vi gebruiken? Hier leest u hoe u een bestand opent en vervolgens opslaat en afsluit
5. Vervang woorden binnen een bereik
U kunt ook woorden binnen een specifiek bereik vervangen.
sed '2,5s / amazing / super / g' tekstbestand.txt
6. Voer meerdere vervangingen tegelijk uit
Als u twee of meer vervangingen tegelijk wilt uitvoeren, scheidt u de opdrachten met de puntkomma (;) karakter.
sed 's / geweldig / super / g; s / command / utility / gi 'textfile.txt
Het systeem geeft de volgende output weer.
Dit is een demo-tekstbestand.
Het is een superbestand dat ons allemaal zal helpen.
Het sed-hulpprogramma is ook geweldig voor het bewerken van streams.
Wilt u leren hoe u het hulpprogramma gebruikt?
Dit is een andere regel in het bestand.
Dit is de derde algemene regel in het bestand.
Dit bestand wordt textfile genoemd.
Dit is een appel.
Dit is een sinaasappel.
7. Vervang woorden alleen als er een overeenkomst wordt gevonden
U kunt ook de opdracht sed gebruiken om een woord alleen te vervangen als een bepaalde overeenkomst in de regel wordt gevonden. Bijvoorbeeld om het woord te vervangen een met een als het woord oranje is aanwezig in de regel:
sed -e '/ orange / s / a / an / g' tekstbestand.txt
Als u de bovengenoemde opdracht uitvoert, wordt het volgende weergegeven:
Dit is een demo-tekstbestand.
Het is een superbestand dat ons allemaal zal helpen.
Het sed-hulpprogramma is ook geweldig voor het bewerken van streams.
Wilt u leren hoe u het hulpprogramma gebruikt?
Dit is een andere regel in het bestand.
Dit is de derde algemene regel in het bestand.
Dit bestand wordt textfile genoemd.
Dit is een appel.
Dit is een sinaasappel.
Merk op dat het woord een in de rij Dit is een appel werd niet vervangen omdat het systeem het woord niet vond oranje in het.
8. Vervang woorden met reguliere expressies
Voor degenen die weten hoe ze reguliere expressies moeten gebruiken, wordt het uitvoeren van bewerkingen op strings met de opdracht sed een stuk eenvoudiger. U kunt reguliere expressies implementeren om de kracht van de opdracht te vergroten.
Om alle exemplaren van het woord te vervangen Verbazingwekkend of verbazingwekkend met super:
sed -e 's / [Aa] mazing / super / g' tekstbestand.txt
Op dezelfde manier kunt u ook geavanceerde reguliere expressies gebruiken om specifieke bewerkingen uit te voeren met de opdracht sed.
9. Pipe sed met andere commando's
Je kunt sed ook aan andere Linux-commando's koppelen. U kunt bijvoorbeeld de lspci commando met sed om lege spaties tussen regels in de uitvoer toe te voegen.
lspci | sed G
Om specifieke woorden in de uitvoer van het ip route show opdracht:
ip route tonen | sed s / src / source / g
Het bovengenoemde commando vervangt het woord bron in plaats van het oorspronkelijke woord src.
Verwant: Hoe u de opdracht Zoeken gebruikt om in Linux naar bestanden te zoeken
10. Bewerk en maak een back-up van het originele bestand
Wanneer u met systeembestanden werkt, is het belangrijk een back-up te maken van het originele bestand terwijl u wijzigingen aanbrengt. Dit zal u helpen bij het ongedaan maken van de wijzigingen voor het geval er iets kapot gaat.
Om een back-up te maken van het originele bestand met sed, gebruikt u de -ik vlag in het commando.
sed -i'.backup '' s / amazing / super / g 'tekstbestand.txt
Er wordt een nieuw bestand gemaakt met de naam textfile.txt.backup. U kunt controleren of de twee bestanden verschillen met de diff opdracht.
diff tekstbestand.txt tekstbestand.txt.backup
Strings bewerken in Linux met sed
Soms, terwijl u met tekstbestanden op de terminal werkt, wordt het opmaken en bewerken van de uitvoer voor een betere leesbaarheid een must. Sed en awk zijn opdrachtregelhulpprogramma's in Linux waarmee een gebruiker efficiënt met tekstbestanden kan werken door de gegevens in afzonderlijke regels te verdelen.
Veel gebruikers vinden het moeilijk om de argumenten en vlaggen van het sed-commando te onthouden, aangezien er veel beschikbaar zijn om te gebruiken. Als u weet hoe u opdrachtregelhandleidingen voor een Linux-opdracht kunt krijgen, kunt u gemakkelijk uit dergelijke situaties komen.
Alle essentiële opdrachten om te leren over Linux-opdrachten vanaf de opdrachtregel
Lees Volgende
- Linux
- Teksteditor
- Terminal
- Opdrachtprompt

Deepesh is de Junior Editor voor Linux bij MUO. Hij schrijft al meer dan drie jaar informatieve inhoud op internet. In zijn vrije tijd houdt hij van schrijven, naar muziek luisteren en gitaar spelen.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.