Suchen & Ersetzen

Oh man, wie oft vergesse ich das noch…

Ersetzt „tabelle1“ durch „tabelle2“ in der Datei dump.sql:

sed -i -e 's/tabelle1/tabelle2/' dump.sql

Ersetzt in allen PHP-Dateien rekursiv den String „name1“ durch „name2“ – aber nur in den Zeilen wo der String „user“ vorkommt:

find . -type f -name "*php" -exec sed -i -e '/user/ s/name1/name2/' {} \;

Verwendete Typo3-Versionen auflisten

Auf Shared-Hosting Systemen werden Typo3-Installationen meist mittels Symlinks zu einer einzigen Typo3_src Installation verlinkt. Aus Kompatibilitätsgründen gibt es aber oft unterschiedliche Versionen parallel auf einem Server.

Aus aktuellem Anlass wollte ich herausfinden, welche Versionen noch auf dem Server laufen:

find /var/www -name typo3_src -type l \
-exec /bin/sh -c "ls -l {}" \; | awk '{printf "%35-s %s\n", $11, $9}'

typo3_versions

PS. Den awk-Kram kann man auch weglassen – ich finde es aber so übersichtlicher.

find -exec mit Pipe

„find“ ist noch mächtiger in Zusammenhang mit dem „-exec“ Parameter – bisher war mir aber nicht klar wie man eine Pipe innerhalb des -exec Abschnitts benutzen kann:

find . -type f -exec sh -c 'cat {} | grep "hello world"' ;

Der Trick ist eine Shell (in diesem Falle „sh“) aufzurufen. Das Kommando oben ist nur ein Beispiel und macht natürlich keinen Sinn 😉.