Hoe vervang ik een string met een andere string in alle tekst bestanden in een map onder Linux?
Bijvoorbeeld; De ~/foo directory heeft 100 tekstbestanden en ik zou graag alle xyz strings willen vervangen door abc.
Dit kan met het commando sed. Dit staat voor stream editor. Dit commando is ontworpen om woorden reeksen te zoeken en deze te vervangen.
De Syntax is het volgende:sed -i 's/old-word/new-word/g' *.txt
Waarbij -i staat voor In place. Dit betekend dat er in bestanden wordt gezocht, in plaats van dat een bestand via een pipe in sed wordt geladen.
Tussen de /en / staat een regexp. De regexp om woorden te vervangen is vrij eenvoudig.
GNU sed command can edit files in place (makes backup if extension supplied) using the -i option. If you are using an old UNIX sed command version try the following syntax:
sed 's/old/new/g' input.txt > output.txt