Tekst zoeken en vervangen

Bash:
Tekst zoeken en vervangen

Hoe te:

Hier is hoe je de kracht van zoeken en vervangen in bash gebruikt:

  1. Tekst binnen een string verwisselen met sed:
echo "Hello world" | sed 's/world/universe/'
# Uitvoer: Hello universe
  1. Tekst in een bestand vervangen, met het opslaan van de wijzigingen:
sed -i 's/old_text/new_text/g' file.txt
  1. Variabelen gebruiken in je zoek- en vervangopdracht:
old="apple"
new="banana"
sed "s/$old/$new/g" <<< "I like apple pies"
# Uitvoer: I like banana pies

Onthoud, g aan het einde betekent “globaal”, dus je verandert elke overeenkomst in de regel, niet slechts de eerste.

Diepgaand

We hebben al eeuwen hulpprogramma’s voor tekstverwerking op Unix-achtige systemen. sed, kort voor Stream Editor, is zo’n hulpprogramma en het bestaat al sinds de jaren 1970. Het is niet alleen voor eenvoudige vervangingen; sed kan ook tekst in complexe patronen snijden en hakken.

Alternatieven? Zeker. awk is een beetje geavanceerder en kan wonderen verrichten met kolommen en rijen. Voor snelle oplossingen kan grep je helpen dingen te vinden, maar het zal niet vervangen - het is meer als de uitkijk.

Onder de motorkap gebruikt sed reguliere expressies, die zijn als wildcards op steroïden. Ze kunnen bijna elk patroon matchen waar je aan kunt denken. Het maakt sed ongelooflijk krachtig, maar ook een beetje lastig om te beheersen.

Zie Ook