{{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]]