Hoe Sed in Linux te gebruiken

sed staat voor stream-editor. Het is een op de opdrachtregel gebaseerde editor voor Linux. Populair gebruik van sed is voor het bewerken van bestanden als onderdeel van een automatiseringsscript in Linux, aangezien gebruikelijke editors actieve gebruikersinvoer vereisen en geen bestanden kunnen bewerken buiten de editorschermen. Sed wordt meestal gebruikt voor het zoeken en vervangen vanaf de opdrachtregel.

Dit type teksteditor kan ook worden gecategoriseerd als een niet-interactieve teksteditor.

Laten we enkele veelvoorkomende opties bekijken om bestanden te bewerken met Sed. We nemen het volgende bestand als voorbeeld:

$: cat test.txt Een snelle bruine hond sprong over de luie kat heen. Linux-besturingssysteem. Het bos bij mij in de buurt heeft zowel een kat als wolven. 

Zoeken en vervangen

Om naar een tekenreeks in een bestand te zoeken en deze te vervangen door een andere tekenreeks, voert u het volgende uit:

sed -i "s/cat/fox/g" test.txt

Hier de -I flag instrueert sed om de wijzigingen in het bestand te schrijven. Zonder deze vlag, sed zal alleen het bestand met de gewijzigde string weergeven.

In de aanhalingstekens hebben we: s/kat/vos/g. De s is voor het zoeken en vervangen commando van sed. Dan hebben we de string die moet worden doorzocht, namelijk: kat. Dan de string om het te vervangen door, d.w.z. Vos. Ten slotte hebben we de optionele G, die instrueert sed om alle voorkomens op alle regels van het bestand te vervangen. Zonder de G, sed vervangt alleen het eerste voorkomen van kat op elke lijn.

Regex kan hier ook worden gebruikt.

sed -i "s/f[a-z]*\./cat\./g"

Invoegen

Als u tekst wilt invoegen vóór een regel met een overeenkomende tekenreeks, gebruikt u:

sed -i "/cat/i Start:" test.txt

Hier, kat is de gezochte string en Begin: is de tekenreeks die moet worden ingevoerd vóór de regel waar de gezochte tekenreeks wordt gevonden.

Op dezelfde manier, om tekst na een regel in te voegen, gebruikt u:

sed -i "/fox/a End." test.txt

Verwijderen

Om een ​​regel met een substring te verwijderen, gebruik je:

sed -i "/Linux/d" test.txt

Om een ​​regel met regelnummer te wissen, bijv. de eerste regel, gebruik:

sed -i '1d' test.txt

Meerdere functies combineren

Om meerdere functies te combineren, bijv. zoeken en vervangen, verwijderen, in één opdracht, -e vlag kan worden gebruikt.

sed -i -e "s/fox/cat/g" -e '2d' test.txt

? Proost!