Re: grep -v funktioniert nicht wie gewünscht
----- 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 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
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 -- printk(KERN_DEBUG "%s: Done reprogramming Xilinx, %d bits, good luck!\n",...); linux-2.6.6/drivers/net/wan/lmc/lmc_main.c -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (2)
-
David Haller
-
Lentes, Bernd