The UNIX and Linux Forums  

Go Back   Die UNIX-und Linux-Foren > Top Foren > UNIX for Dummies Questions & Answers
.
Google unix.com



UNIX for Dummies Questions & Answers Wenn Sie nicht sicher sind, wo Sie eine UNIX-oder Linux-Frage, post it here. Alle UNIX-und Linux-Anfänger willkommen!

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Rekursive FTP - hier endlich. Perderabo Shell Programmierung und Scripting 52 03-25-2009 12:15 PM
rekursiven grep Frage Mace UNIX for Dummies Questions & Answers 1 08-11-2006 08:39 AM
rekursive GREP? alan UNIX for Dummies Questions & Answers 3 08-22-2003 04:15 AM
grep rekursiv Verzeichnisse jagannatha UNIX for Dummies Questions & Answers 8 07-24-2003 05:00 PM
Rekursive FTP aslamg UNIX for Dummies Questions & Answers 1 03-08-2001 04:27 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Registrierte Nutzer
  
 

Registriert seit: Mai 2008
Beiträge: 17
Rekursive grep

Hallo,

Zum ersten Mal nach - ich habe keine formale Ausbildung Unix und könnten mit Hilfe dieser. Ich habe eine Liste von Zeichenketten in Datei1, dass ich verwenden möchte, um eine rekursive Suche (grep) unter einem bestimmten Verzeichnis.


Hier ist ein Beispiel für die String brauche ich für die Suche:

/ verzeichnis / dire ctory / verzeichnis / dire ctory / filename

Ich versuche zu zeigen, dass die Zeichenfolge eine vollständige Verzeichnispfad der Datei, in der einige der Verzeichnisse sind Räume, in deren Namen.

Ich habe dann das folgende Skript:

h in `cat Datei1" do grep-rl "$ h" /../../../../../>> /../../ Datei2; getan

Also, ich bin versucht zu sagen, für jede Saite in Datei1, einen rekursiven grep in das angegebene Verzeichnis und drucken die Ergebnisse datei2.

Das Problem (glaube ich) Ich bin in Betrieb ist das Format des Strings Ich suche, ich bin die Katze tun, ist die Behandlung der Räume, wie entkommt geht die grep aus. Ich habe versucht, den String in Einzel-und doppelte Anführungszeichen, aber es ist immer noch nicht funktioniert.

Sorry für die fehlende technische Terminologie - ich hoffe, ich war klar genug.

Wenn jemand jede mögliche Hilfe anbieten können, für die Arbeit mit dem, was ich habe oder eine einfachere Alternative zu dem, was ich habe, wäre es eine große Hilfe.

Vielen Dank - Hinterland Junge
  #2 (permalink)  
Old 05-16-2008
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Ort: NM
Posts: 5813

Code:
find /path/to/search/in -type f | \
while read filename
do
       grep -f /path/to/strings.txt $filename
done  > /home/upstate_boy/results.txt

grep-f <file> Mittel zu verwenden, die Saiten in <file> als Such-Strings für grep.
Das Geschehen> Dateinamen schreibt die Ausgabe der Schleife zu Dateinamen

Zuletzt bearbeitet von Jim McNamara; am 05-16-2008 10:07 AM..
  #3 (permalink)  
Old 05-16-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
Der relative Pfad zu Datei2 scheint falsch, die Ausgabe-Umleitung ist relativ zum aktuellen Verzeichnis, nicht das Verzeichnis der Datei, die Sie Grepping.

Die relative pat Sie Grepping scheint falsch zu; / .. / entspricht / entspricht /../../../../../

Die Backticks in der for-Schleife werden, was die Aufspaltung mit den Leerzeichen. Verwenden Sie ein Konstrukt ist, die weniger empfindlich auf Abstand Fragen, oder verwenden Sie richtige Angabe.


Code:
for h in "`cat file1`"; do grep -rl "$h" pathtodir >>file2; done

oder


Code:
while read h; do grep -rl "$h" pathtodir >>file2; done<file1

  #4 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Registrierte Nutzer
  
 

Registriert seit: Mai 2008
Beiträge: 17
Vielen Dank für die Antworten. Ich glaube nicht, dass ich Ihre Vorschläge Vollstreckungsstaats richtig, ich habe versucht alle 3.

Jim,

Ich bin definitiv verwirrt, welche Dateien wo gelesen, wenn ich Ihnen.

übernehmen:
strings.txt \u003d Datei mit Strings Ich möchte finden
results.txt \u003d Ausgabedatei der Suchergebnisse

Ich versuche:

find / verzeichnis / I / wollen / search /-type f | \
while read results.txt
tun
grep-f $ strings.txt results.txt
getan

Wenn ich dieses, ich:

heißen: "results.txt ': keine gültige Kennung

Zeit,

Ich habe nicht alle Fehler mit Ihren Anregungen, aber Strings Ich suche immer noch aufgebrochen, was bedeutet, dass die Räume oder "/" in die Saiten werden so behandelt, als Pausen Drehen 1 string in mehrere kleine Strings, die jeweils immer gesucht.

Ein besseres Beispiel für das, was ich ursprünglich zu tun versuchen, ist:

h in `cat strings.txt" do grep-rl "$ h" / verzeichnis / pfad / Ich will / zu / Suche />> / home / verzeichnis / results.txt; getan

mit /../../ in meiner ursprünglichen Nachricht wurde nicht die beste Wahl für meinen Teil, wenn sie den Gegenwert von Zecken zurück.


Ich werde weiterhin mit Geige alle Vorschläge, wenn keine weiteren Beratung angeboten werden kann es wäre eine große Hilfe.


Dank Hinterland Junge
  #5 (permalink)  
Old 05-16-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
Die Variable in Jim Beispiel kann nicht genannt werden results.txt einfach ändern, um z. B. "Datei" und Sie sollten in Ordnung.

Alles, was mit erheblichen Räume sollte es in doppelten Anführungszeichen.
  #6 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Registrierte Nutzer
  
 

Registriert seit: Mai 2008
Beiträge: 17
Ich habe es an:

find / verzeichnis / I / wollen / search /-type f | \
while read-Datei
tun
grep-f $ strings.txt results.txt
getan

Die Ergebnisse sind jetzt:

grep:. txt: Keine solche Datei oder ein Verzeichnis

Kann jemand Zauber genau, wie ich es am Beispiel Ich nutze?

Dank Hinterland Junge
  #7 (permalink)  
Old 05-16-2008
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Ort: NM
Posts: 5813
Siehe oben zu bearbeiten, in rot.
Closed Thread

Lesezeichen

Tags
grep, grep rekursiv, rekursiven grep

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 03:32 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0