Was verwendet ihr, um in und unterhalb eines bestimmten Verzeichnisses Dateien mit einem bestimmten String zu orten ? Das folgende Shellskript, von mir 'zeige' benannt, funktioniert, wenn ich z.B. den String '/dev/modem' suche ("zeige '/dev/modem'") trotz des 'ls -R' leider doch nicht unterhalb des Verzeichnisses :-< Vielen Dank fuer Tips, Herbert (herbertbetz@csi.com) #!/bin/sh for i in `ls -R`; do if [ -f $i ] && grep $1 $i > /dev/null; then echo $i fi done exit 0 # end -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Herbert Betz wrote:
Was verwendet ihr, um in und unterhalb eines bestimmten Verzeichnisses Dateien mit einem bestimmten String zu orten ?
Das folgende Shellskript, von mir 'zeige' benannt, funktioniert, wenn ich z.B. den String '/dev/modem' suche ("zeige '/dev/modem'") trotz des 'ls -R' leider doch nicht unterhalb des Verzeichnisses :-<
Vielen Dank fuer Tips, Herbert (herbertbetz@csi.com)
Hallo Herbert, # find . -name "*" -print | xargs grep "$1" vielleicht so?? o long... bernd [...] -- Please try to boot your system outside the system, it maybe the grounding problem. -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Bernd Obermayr wrote:
Was verwendet ihr, um in und unterhalb eines bestimmten Verzeichnisses Dateien mit einem bestimmten String zu orten ?
Nimm "fgrep". -- Michael Harjes debis Systemhaus GEI GmbH Geschaeftsstelle Hamburg / Telephone: +49-208-3788-415 Brunshofstrasse 12 / Fax: +49-208-3788-312 D-45470 Muelheim a.d. Ruhr / E-mail: mharjes@debis.com -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Michael Harjes wrote: Hallo Michael, mal abgesehen davon, dass Du falsch gequotet hast,das da Unten ist nicht von mir, es ist ein Teil der Frage von Herbert Betz...
Bernd Obermayr wrote:
Was verwendet ihr, um in und unterhalb eines bestimmten Verzeichnisses Dateien mit einem bestimmten String zu orten ?
Nimm "fgrep".
...kann ich den Sinn Deines Tips nicht nachvollziehen. Auszug aus man grep: -F Interpret pattern as a list of fixed strings, sepa rated by newlines, any of which is to be matched. In addition, two variant programs egrep and fgrep are available. Egrep is similiar (but not identical) to grep -E, and is compatible with the historical Unix egrep. Fgrep is the same as grep -F. Was hilft das bei dem angefragten Problem?? o long... bernd -- Please try to boot your system outside the system, it maybe the grounding problem. -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
On Wed, 29 Jul 1998, Bernd Obermayr wrote:
Herbert Betz wrote:
Was verwendet ihr, um in und unterhalb eines bestimmten Verzeichnisses Dateien mit einem bestimmten String zu orten ?
Wenn Du das oefters machst (Kernelquellen, /usr/doc/, Webbaum, ...) solltest Du Dir glimpse(1) ansehen: glimpseindex -H $VERZ_ZUM_INDEX $VERZ_MIT_DOKUMENTEN glimpse -H $VERZ_ZUM_INDEX [ -i -w -l ... ] $MUSTER glimpse baut einen Index auf und bietet Volltextsuche an.
# find . -name "*" -print | xargs grep "$1"
noch besser: find . -type f | xargs grep "$1" /dev/null dann kommt der Filename noch mit, weil grep sagen will, in welchem der Files (gefundene UND /dev/null) das Muster war (interessant, wenn find per Zufall nur eine Datei findet -- wegen dem -name oder -type oder -maxdepth oder weil ohnehin nur eine da ist oder ...). Und bei einem halbwegs stabilen Baum (keine NEUEN Files, aber moeglicherweise Aenderungen an VORHANDENEN) ist locate(1) freundlicher zur Platte. Und man sollte sich bestimmt die grep-Varianten ansehen: - egrep, das nach mehreren Mustern gleichzeitig suchen kann - fgrep, das bei konstanten Suchmustern (keine regex) wohl schneller ist - agrep, das auch Tippfehler (Dreher, fehlende Buchstaben) akzeptiert und eben glimpse (das scheinbar vom agrep her kommt). Und bei der Gelegenheit wird man crontab(1) und crontab(5) bemuehen, um die Indexe und File-Datenbasen aufzufrischen. G.Sittig@abo.FreiePresse.DE -- If you don't understand or are scared by any of the above ask your parents or an adult to help you. -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
On Wed Jul 29, 1998 at 12:18:16AM +0200, Herbert Betz wrote:
Was verwendet ihr, um in und unterhalb eines bestimmten Verzeichnisses Dateien mit einem bestimmten String zu orten ?
find -type f | xargs grep -l "suchstring" -- __o Heinz Diehl, 68259 Mannheim, Germany _`\<,_ PGP-encrypted mails welcome, key on request [subj. get pgpkey] (_)/ (_) "The sun is shining. It must be Sunday !" (Alien Sex Fiend) ~~~~~~~~~~~~ -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Hallo,
On Wed Jul 29, 1998 at 12:18:16AM +0200, Herbert Betz wrote:
Was verwendet ihr, um in und unterhalb eines bestimmten Verzeichnisses Dateien mit einem bestimmten String zu orten ?
find -type f | xargs grep -l "suchstring"
chön ist auch "rgrep", das mit dem Editor "jed" von John E. Davies mitgeliefert wird. Schöne Grüße, Robert -- Dr. Robert Frank; Dept. of Economics; University of Munich; phone: ++49 89 2180 3261; fax: ++49 89 2180 6272 Robert.Frank@lrz.uni-muenchen.de <A HREF="http://www.vwl.uni-muenchen.de/~robert/"><A HREF="http://www.vwl.uni-muenchen.de/~robert/</A">http://www.vwl.uni-muenchen.de/~robert/ PGP (59DAE869) 1F A3 41 2A 90 57 A5 57 90 FE A1 6F 4A 77 91 31 -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Am Mit, 29 Jul 1998 schrieb Herbert Betz:
Was verwendet ihr, um in und unterhalb eines bestimmten Verzeichnisses Dateien mit einem bestimmten String zu orten ?
Das folgende Shellskript, von mir 'zeige' benannt, funktioniert, wenn ich z.B. den String '/dev/modem' suche ("zeige '/dev/modem'") trotz des 'ls -R' leider doch nicht unterhalb des Verzeichnisses :-<
Vielen Dank fuer Tips, Herbert (herbertbetz@csi.com)
#!/bin/sh for i in `ls -R`; do if [ -f $i ] && grep $1 $i > /dev/null; then echo $i fi done exit 0 # end
Hallo Herbert mach mal ls -R|cat um zu schauen was ls -R so macht. Das cat muß sein, weil sich ls anders verhält, wenn es auf einer pipe ausgibt. Du wirst sehen, daß keine Pfade ausgegeben werden. Dein grep schaut somit im falschen, nämlich aktuellen, Verzeichnis nach und findet dort nichts. Besser ist in solchen Fällen find. Versuchs mal mit find . -type f -exec grep -l "/dev/modem" "{}" \; Hilfe gibt es mit man find man grep mfg Bernd -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
participants (7)
-
100330.153@compuserve.com
-
B.Brodesser@t-online.de
-
G.Sittig@abo.FreiePresse.DE
-
hd@elfie.rhein-neckar.de
-
Illuminatus@t-online.de
-
mharjes@debis.com
-
u513201@mail.lrz-muenchen.de