bash: /usr/bin/fgrep: Argument list too long
Hallo zusammen, fgrep inn /var/spool/imap/user/tom/Lists/SuSe/* gibt leider nur folgendes aus bash: /usr/bin/fgrep: Argument list too long ! In einem anderen Verzeichnis geht das ganze. Liegt das an zu vielen Dateien? sind etwas mehr als 40000 Stück oder so?! Ideen? Danke Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Stefan Goerres schrieb am 25.Jul.2000:
fgrep inn /var/spool/imap/user/tom/Lists/SuSe/* gibt leider nur folgendes aus bash: /usr/bin/fgrep: Argument list too long ! In einem anderen Verzeichnis geht das ganze. Liegt das an zu vielen Dateien? sind etwas mehr als 40000 Stück oder so?!
Scheint so zu sein. fgrep bekommt von der shell fgrep inn und dann 40000 Dateienamen, jedesmal mit dem Pfad davor. Vielleicht hilft es ja schon, wenn Du ein cd /var/spool/imap/user/tom/Lists/SuSe machst und dann ein fgrep inn * Aber irgendwann ist mal Schluß. Bernd -- Was ist quoten? Quoten ist das Zitieren aus einer mail, der man antwortet. Und wie macht man es richtig? Zitate werden mit "> " gekennzeichnet. Nicht mehr als nötig zitieren. Vor den Abschnitten das Zitat, auf das man sich bezieht, mit einer Zeile Abstand oben und unten. |Zufallssignatur 12 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Bernd Brodesser wrote:
* Stefan Goerres schrieb am 25.Jul.2000:
fgrep inn /var/spool/imap/user/tom/Lists/SuSe/* gibt leider nur folgendes aus bash: /usr/bin/fgrep: Argument list too long ! In einem anderen Verzeichnis geht das ganze. Liegt das an zu vielen Dateien? sind etwas mehr als 40000 Stück oder so?!
Scheint so zu sein. fgrep bekommt von der shell fgrep inn und dann 40000 Dateienamen, jedesmal mit dem Pfad davor. Vielleicht hilft es ja schon, wenn Du ein cd /var/spool/imap/user/tom/Lists/SuSe machst und dann ein fgrep inn *
Hi Stefan, versuch doch mal das Kommando "xargs". Ich glaube das behebt das Problem. => The xargs utility constructs a command line consisting of the utility and argument operands specified followed by as many arguments read in sequence from standard input as will fit in length and number constraints specified by the options. The xargs utility then invokes the constructed command line and waits for its completion. This sequence is repeated until an end-of-file condition is detected on stan- dard input or an invocation of a constructed command line returns an exit status of 255. Gruss aus dem schon wieder verregneten Nuernberg Werner Franke --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
----- Original Message ----- From: "Werner Franke" <wfranke@slds1.de.lucent.com>
Bernd Brodesser wrote:
* Stefan Goerres schrieb am 25.Jul.2000:
fgrep inn /var/spool/imap/user/tom/Lists/SuSe/* gibt leider nur folgendes aus bash: /usr/bin/fgrep: Argument list too long ! In
einem
anderen Verzeichnis geht das ganze. Liegt das an zu vielen Dateien? sind etwas mehr als 40000 Stück oder so?!
Scheint so zu sein. fgrep bekommt von der shell fgrep inn und dann 40000 Dateienamen, jedesmal mit dem Pfad davor. Vielleicht hilft es ja schon, wenn Du ein cd /var/spool/imap/user/tom/Lists/SuSe machst und dann ein fgrep inn *
Hi Stefan,
versuch doch mal das Kommando "xargs". Ich glaube das behebt das Problem.
=> The xargs utility constructs a command line consisting of the utility and argument operands specified followed by as many arguments read in sequence from standard input as will fit in length and number constraints specified by the options. The xargs utility then invokes the constructed command line and waits for its completion. This sequence is repeated until an end-of-file condition is detected on stan- dard input or an invocation of a constructed command line returns an exit status of 255.
Habe das jetzt in etwa so : find /var/spool/imap/user/tom/Lists/SuSe/ -name '*\.'|xargs grep -l ' inn ' und finde es schon mal toll das er mir die Dateinamen ausspuckt in denen er was findet, aber wie bekomme ich die dann auch noch angezeigt? mit cat? nur wie?
Gruss aus dem schon wieder verregneten Nuernberg
in Mainz regnet es auch :) Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Stefan Goerres wrote:
Habe das jetzt in etwa so :
find /var/spool/imap/user/tom/Lists/SuSe/ -name '*\.'|xargs grep -l ' inn '
und finde es schon mal toll das er mir die Dateinamen ausspuckt in denen er was findet, aber wie bekomme ich die dann auch noch angezeigt? mit cat? nur wie?
Versuch's doch mal mit: find /var/spool/imap/user/tom/Lists/SuSe/ -name '*\.'| \ xargs grep -l 'inn ' | \ while read file; do cat $file done Gibt bestimmt was Eleganteres, aber ich habe was aehnliches so am laufen. (Have obiges Kommando nicht ausprobiert, aber wenn Dein Kommando ganz oben Filenamen liefert, dann muesste es so funktionieren) Gruss Werner Franke --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Mit, Jul 26, 2000 at 03:21:27 +0200, Werner Franke wrote: [...]
Versuch's doch mal mit:
find /var/spool/imap/user/tom/Lists/SuSe/ -name '*\.'| \ ^^^^^^^^^^^ brauchst Du nicht. xargs grep -l 'inn ' | \ while read file; do ^^^^ geht zwar, aber Vorsicht! file ist ein Kommando. <IMHO-Mode> Anderer Name (datei) wäre besser. </IMHO-Mode> cat $file done
Oder so: cd /var/spool/imap/user/tom/Lists/SuSe for datei in *; do grep -sq "inn " $datei && less $datei done Jan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Stefan Goerres schrieb in 1,8K (57 Zeilen):
find /var/spool/imap/user/tom/Lists/SuSe/ -name '*\.'|xargs grep -l ' inn '
Hinweis: Bei Blanks oder Newlines im Namen/Pfad[1] oder gar Zeichen wie ' und " und ; kann das ganze ziemlich uebel enden -- bis hin zur Ausfuehrung von Befehlen (a la rm -rf *). Daher ist ein find $PFAD -print0 | xargs -0 $BEFEHL besser. Ascii-0 (aka \0) kann als Name naemlich nicht vorkommen und wird so als Trenner verwendet. xargs kann dann die Teile direkt (ohne dass die shell was zu sagen hat) als Kommandos in das Programm reinhauen, da stoeren dann auch Sonderzeichen nicht. -Wolfgang [1] Das ist u.a. bei der SDB der Fall ... --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (5)
-
B.Brodesser@online-club.de
-
Jan.Trippler@t-online.de
-
stefan.goerres@xsc.net
-
weissel@netcologne.de
-
wfranke@slds1.de.lucent.com