
Hallo Bernd, Am 28.04.2017 um 15:51 schrieb Lentes, Bernd:
Hi,
ich möchte zwei Ordner sowie deren Unterordner nach Dateien durchsuchen, die die Zeichenfolge 'perl' beinhalten. Anschließend möchte ich alle Zeilen rausfiltern, in denen '#!/usr/bin/perl' steht. das interessiert mich nicht. Wieso funktioniert das nicht wie geplant ?
pc52842:~ # grep -iIr 'perl' /srv/www/cgi-bin/mausdb/* /srv/www/htdocs/mausdb/* |grep -v '^#'
/srv/www/cgi-bin/mausdb/change_mice2mouselines.pl:#!/usr/bin/perl -w /srv/www/cgi-bin/mausdb/change_mouselines.pl:#!/usr/bin/perl -w /srv/www/cgi-bin/mausdb/fill_cage_use_data.pl:#!/usr/bin/perl /srv/www/cgi-bin/mausdb/fill_mice_days_in_projects.pl:#!/usr/bin/perl /srv/www/cgi-bin/mausdb/fill_mice_days_in_projects_cst.pl:#!/usr/bin/perl /srv/www/cgi-bin/mausdb/fill_mice_days_in_projects_kth.pl:#!/usr/bin/perl
das funktioniert nicht "wie geplant", aber wie beauftragt. :-). Dein erster grep-Befehl liefert eine Zeile, an deren Anfang "/srv/www/...." steht. Und Du willst nun die Zeilen unterdrücken (grep -v), die am Anfang einen Gartenzaun haben (grep -v ^#). Da die Zeilen, wie erwähnt, mit /srv anfangen, wird auch keine unterdrückt. Ein ... | grep -v \:# würde an _diesen_ Stellen besser helfen. Ist nur doof, wenn das an einer falschen Stelle noch vorkäme. Vielleicht wäre grep -iIr... | cut -f2- -d\: | grep -v ^# besser. Gruß Jan -- _________________________________________________________________ Jan Handwerker http://www.imk-tro.kit.edu/jan.handwerker.php