On Tuesday, September 14, 2010 11:05:03 Andre Tann wrote:
Sowas finde ich grausig:
grep -ril wort1 . | while read x; do grep -ril wort2 "$x"; done | while...
Gibts nicht was schöneres, wo jede Datei nur einmal gelesen werden muß?
Du willst alle Dateien finden, die sowohl wort1 als auch wort2 enthalten, richtig? Sind die Dateien nicht zu groß könnte folgendes Perl-Kommando helfen. Ich habe versucht, nur wenig Perl zu verwenden. Man kann natürlich auch das rekursive Wandern durch den Verzeichnisbaum recht einfach in Perl durchführen. Auch liest das Script jede Datei komplett in den RAM. Für richtig große Dateien ist das also ungeeignet. "bin" und "root" ist wohl in jeder /etc/passwd und /etc/group enthalten, aber in /etc/motd eher seltener. Im Perl-Code selbst kannst Du alle Leerzeichen weglassen, wenn Du willst. find /etc/passwd /etc/group /etc/motd -type f -print0 | xargs -0 perl -le ' undef $/; for $n (@ARGV) { local @ARGV=($n); local $_=<>; /bin/ && /root/ && print $n; }' Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org