Dateien in der Shell bearbeiten

This blog post has been published on 2010-03-28 and may be out of date.

Es kommt öfter vor, dass man schnell in mehreren Dateien etwas ändern möchte, Linux sieht für diesen Fall “sed” vor.

z.B.:

sed -i 's/Ubuntu/Windows/g' test.txt

Alternativ kann man dies auch mittels Perl realisieren.

find . -name '.cfg' | xargs perl -pi -e 's/alt/neu/g'

Mit dem zuvor genannten Befehl kann man in allen Dateien, ab den aktuellen Verzeichnis, welche auf “.cfg” enden, “neu” gegen “alt” ändern. Ggf. kann man den Befehl auch noch in der .bashrc aufnehmen, um diesen noch einfacher und schneller einsetzten zu können. Somit muss man nur noch “replace Pfad alt neu” z.B.:

sudo replace /etc/ host_alt host_neu
# mehrere Dateien gleichzeitig aendern
replace()
{
if [ $3 ]; then
    find $1 -type f | xargs perl -pi -e 's/$2/$3/g'
else
    echo "Missing argument"
    echo "example: replace /wo alt neu"
fi

Published by

voku

Lars Moelleken | Ich bin root, ich darf das!

%d bloggers like this: