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
In den Skripten ist auch keine Leerzeichen vor der #.
Diese Zeilen dürften mir doch gar nicht angezeigt werden !?!
Es scheint als ob das 2. grep überhaupt keinen Einfluß hat:
pc52842:~ # grep -iIr 'perl' /srv/www/cgi-bin/mausdb/* /srv/www/htdocs/mausdb/* |grep -v '^#'|wc -l 49
pc52842:~ # grep -iIr 'perl' /srv/www/cgi-bin/mausdb/* /srv/www/htdocs/mausdb/* |wc -l 49
Wenn ich nur den ersten Ordner durchsuche gleiches Problem.
Any ideas ?
Danke.
Bernd
Ega
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