----- On Apr 28, 2017, at 3:57 PM, Handwerker, Jan (IMK) jan.handwerker@kit.edu wrote:
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.
Autsch. Denkfehler !
Danke und schönes WE.
Bernd
Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Heinrich Bassler, Dr. Alfons Enhsen Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671
Hallo,
Am Fri, 28 Apr 2017, Lentes, Bernd schrieb:
Am 28.04.2017 um 15:51 schrieb Lentes, Bernd:
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
[..]
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.
Autsch. Denkfehler !
$ grep -iIr '^[^#].*perl' /srv/www/...
HTH, -dnh