Kleine Helfer für die Kommandozeile

11. Februar 2010
Lösche rekursiv alle CVS Verzeichnisse ab aktuellem Verzeichnis:
 
find . -name "CVS" -type d -exec rm -R {} \;
 
Ändere rekursiv die Rechte aller Makefiles:
 
find . -name "Makefile" -type f -exec chmod 0600 {} \;
 
Ersetze in allen gefundenen .txt-Dateien das Vorkommen von 'Steffen' durch 'Matthias'
(per In-Place Ersetzung - betroffende Stellen in der Datei werden verändert, Struktur [Zeilenumbruch usw.] und Dateiname bleiben erhalten):
 
sed -i 's/Steffen/Matthias/' `find . -name "*.txt" -type f -print`
 
Suche rekursiv in allen Dateien nach dem Vorkommen von hallo, suche dabei nicht in Verzeichnissen (bzw. Unterverzeichnissen) die templates heißen:
 
grep -inr 'hallo' --exclude-dir='templates' *
 
Suche rekursiv in Dateien die auf php sowie auf txt enden nach dem Vorkommen von hallo, suche dabei nicht in Verzeichnissen (bzw. Unterverzeichnissen) die templates oder temp heißen:
 
grep -inr 'hallo' --exclude-dir={templates,temp} --include={*.php,*txt} *
 
2 Kommentare, Ideen, Vorschläge
1
23. Januar 2011  |  Steffen Böhme
Hallo Matze ...

Zum sed-Snippet:
Um wirklich 100%-tig alle Vorkommen zu ersetzen fehlt das "g" am Ende des Patterns für sed. Damit werden auch mehrfache Vorkommen pro Zeile umsetzt ;-):

sed -i 's/Steffen/Matthias/g' `find . -name "*.txt" -type f -print`

Ansonsten wird immer nur das erste vorkommen pro Zeile ersetzt.
Jetzt habe ich es dir aber gegeben :D

Gruß
Steffen
2
25. Januar 2011  |  Matthias Sonnenkalb
Hallo Steffen,

schön mal was von Dir zu lesen. Danke für den Eintrag!

Gruß,
Matze
2 Kommentare bisher.
HILFE
Code-Beispiele werden mit den BBCodes [code][/code] dargestellt. Jedes Tag muss eine Zeile für sich allein haben, d.h der Beispiel-Code muss wirklich ZWISCHEN den Tags stehen. Beispiel:
[code] ACHTUNG! HIER UMBRUCH WICHTIG. TAG [code] MUSS ALLEIN STEHEN
#include <stdio.h>

int main( void ){
    return 0;
} ACHTUNG! HIER UMBRUCH WICHTIG. NACHFOLGENDES TAG [/code] MUSS ALLEIN STEHEN
[/code]

Alles was zwischen den beiden Tags [register] und [/register] eingetragen wird, ist nur für registrierte (und eingeloggte) User sichtbar.
Dein Name *
Deine Email
Deine Website
Vorschau