{{tag>find_files count_lines}}
====== 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: [[http://www.dwheeler.com/sloccount/| SLOCCount]]