Suchen und Ersetzen

Guten Morgen,

ich habe folgendes Problem:

In einem Ordner ( /opt/test/ ) sind ungefähr 80 Dateien. 50 davon sind xml-Dateien. Viele von diesen xml-Dateien enthalten einen Eintrag der lautet validate=true (der Eintrag kommt ungefähr in 80% der xml-Dateien vor. Der Eintrag kann dann einmal bis sechsmal in einer Datei vorkommen). Dieser Eintrag soll nun auf false gesetzt werden.
Kann ich das Problem mit einem Befehl lösen oder muss ich in jede Datei reinschauen, suchen und mit vi ändern?

Danke für Eure Hilfe und beste Grüße
Bozi

Hi Bozi,
‚sed‘ ist das Tool, das dir weiterhilft.

in etwa so (ungetestet!), falls die validate=true immer nur in einer Zeile stehen:

for fname in /opt/test/\*.xml
do
 sed 's/validate=true/validate=false/g' ${fname}.neu
 mv ${fname} ${fname}.old
 mv ${fname}.neu ${fname}
done

Andere Möglichkeiten, perl -inpe ‚…‘ (Vorsicht bei -i, damit schiesst man sich beim ersten Anlauf leicht ins Knie).

gruss
bernhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]