Mehrmaliges Suchen und Ersetzen

Aus Bluelupo's Wiki
Wechseln zu: Navigation, Suche

Mit dem Kommandozeilentool sed kann man in einen Aufruf ein mehrmaliges Suchen und Ersetzen eines Strings durchführen. Dazu ein Beispiel, wie man aus allen Zeilen der Crontab (außer Leer- und Kommentarzeilen), die sechs Crontabfelder anstatt des Leeraumes mit dem Datenfeldtrenner # bestückt.

# crontab -l | egrep -v '(^#|^$)' | sed -e's/[ ,\t]\{1,\}/#/' -e's/[ ,\t]\{1,\}/#/' -e's/[ ,\t]\{1,\}/#/' -e's/[ ,\t]\{1,\}/#/' -e's/[ ,\t]\{1,\}/#/'


Das Ergebnis sieht dann wie im nachfolgenden Listing aus.

03#16-20/4#*#*#*#/usr/bin/find /var/log/chkrootkit -mtime +30 -name "chkrootkit*" -exec rm -f {} \;
20#17#*#*#*#/usr/sbin/logrotate /etc/logrotate.conf -v
09#8-20/6#*#*#*#/usr/local/scripts/getdisktemp.sh

Nun kann man ggf. diese Ausgabe in einem Script zur weiteren Verarbeitung nutzen.