Linux / Finden und Ändern

Finden und Ändern von mehreren Einträgen. Hier wird z.B eine IP Adresse geändert, die in mehreren Textdateien vorkommt.

find . -type f -exec sed -i "s/192\.168\.90\.2/192\.168\.90\.1/g" {} \;

Erklärung:

  • find . (Suche überall – Der Befehl find arbeitet automatisch rekursiv)
    -type f (f steht für files – also nur in Dateien)
  • -exec (es soll etwas ausgeführt werden)
  • sed -i (ist der Befehl der ausgeführt wird, das -i bedeutet, dass die Änderungen direkt in der Datei vorgenommen werden sollen.)
  • „s/ (Beginn des Musters was gesucht werden soll
  • 192\.168\.90\.2 (IP Adresse nach der gesucht werden soll. Das \. bedeutet nur, dass der Punkt als Zeichen interpretiert wird und nicht als Muster
  • 192\.168\.90\.1 (neue IP Adresse, die anstelle der anderen verwendet werden soll)
  • /g“ (Bedeutet das alle gefunden Einträge geändert werden und die Anführungszeichen zum Schluss
  • {} (ist ein Platzhalter für den Dateinamen
  • \; ist der Abschluß einer exec Anweisung
Share