Inhaltsverzeichnis

,

Dateien nach Inhalt durchsuchen

Mit der Shell lassen sich mittels find alle/bestimmte Datei nach vorgegebenen Inhalten durchsuchen:

find . -name "*.php" -print -exec grep 'Suchtext' \{\} \;

Statt \{\} und \; kann man auch schreiben: „{}“ und „;“

Coll, weil nur Ergebnisse:

find / -type f -exec grep -H 'text-to-find-here' {} \;

grep alleine:

  This will only search through those files which have .c or .h extensions:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"

Zuschlag aus Schatzkiste löschen

Versehentliche Zusätze in Schatzkiste. Sie werden nach der Zahl in Centbeträgen in den Dateinamen kodiert. Also z.B. 2€ : 001-Z200AAAAAAAAAA.jpg Nachträglich entfernen mit Bash und rename (Perl): Testlauf (-n):

find . -name '???-Z200*.jpg' -type f -exec rename -n 's/-Z200/-/' {} ";"

Richtiger Lauf:

find . -name '???-Z200*.jpg' -type f -exec rename -v 's/-Z200/-/' {} ";"

Bilder nachträglich in ALLE Schatzkiste kopieren

neue Bilder sind in /var/www/schatzkiste/XXXX/NeueBilder/:

cd /var/www/schatzkiste/XXXX
find . -type d -exec cp NeueBilder/*.jpg \{\} \;

Zeilen zählen

z.B. die Codezeilen des Linuxkernel (Git-Checkouts) zählen (mit allen Leerzeilen, Kommentaren und Textdateien im Quellcode):

find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l

Nur die Zeilen Text in Dateien mit Quellcode zählen:

find . -name *.[hcS] -not -regex '\./\.git.*' | xargs cat | wc -l

Linux-Kernel etc.: Zeilen Zählen ohne Kommentare: SLOCCount