The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > UNIX voor Dummies Questions & Answers
.
google unix.com



UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!!

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Recursief FTP - hier op het laatst. Perderabo Programmeren en Shell Scripting 52 03-25-2009 12:15
recursieve grep kwestie Mace UNIX voor Dummies Questions & Answers 1 08-11-2006 07:39
recursieve grep? alan UNIX voor Dummies Questions & Answers 3 08-22-2003 03:15
grep recursieve abonneelijsten jagannatha UNIX voor Dummies Questions & Answers 8 07-24-2003 04:00 PM
Recursief FTP aslamg UNIX voor Dummies Questions & Answers 1 03-08-2001 04:27

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Geregistreerde gebruiker
  
 

Join Date: mei 2008
Posts: 17
Recursief grep

Hallo,

Eerste bericht - Ik heb geen formele opleiding unix en kan wel wat hulp gebruiken met dit. Ik heb een lijst van strings File1 dat ik wil gebruiken om een recursieve zoeken (grep) onder een bepaalde directory.


Hier is een voorbeeld van de string ik nodig om te zoeken:

/ directory / dire ctory / directory / dire ctory / bestandsnaam

Ik probeer om te illustreren dat de string is een volledige directory pad van een bestand waarin een aantal van de directories hebben ruimten in hun naam.

Vervolgens heb ik het volgende script:

voor h in `cat bestand1"; doen grep-rl "$ h" /../../../../../>> /../../ bestand2; gedaan

Dus, ik probeer te zeggen voor elke string in bestand1, doe een recursieve grep in de gespecificeerde directory en afdrukken van de resultaten aan bestand2.

Het probleem (denk ik) Ik ben actief in het format van de string ik zoek, de kat Ik ben bezig is de behandeling van de ruimten als ontsnapt die gooit het grep uitgeschakeld. Ik heb geprobeerd om de string in enkele en dubbele aanhalingstekens, maar het is nog steeds niet werkt.

Sorry voor het ontbreken van technische terminologie - Ik hoop dat ik duidelijk was genoeg.

Als iemand geen hulp kan bieden op het maken van het werken met wat ik heb of een eenvoudiger alternatief voor wat ik heb, het zou een grote hulp.

Bedankt - upstate jongen
  #2 (permalink)  
Old 05-16-2008
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.748
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> middelen gebruik te maken van de strijkers in <FILE> als search strings voor grep.
De gedaan> bestandsnaam deel schrijft de uitvoer van de lus aan de bestandsnaam

Laatst gewijzigd door Jim McNamara; op 05.16.2008 09:07..
  #3 (permalink)  
Old 05-16-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
De relatieve pad naar bestand2 lijkt verkeerd; de output redirection is ten opzichte van de huidige directory, en niet de map van het bestand dat u Grepping.

De relatieve pat u Grepping lijkt mis te / .. / is gelijk aan / is gelijk aan /../../../../../

De backticks in de lus wordt wat zijn opsplitsing spullen op witruimte. Gebruik een constructie die is minder gevoelig voor spatiëring kwesties, of gebruik een goede citeren.

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

Code:
while read h; do grep -rl "$h" pathtodir >>file2; done<file1
  #4 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Geregistreerde gebruiker
  
 

Join Date: mei 2008
Posts: 17
Dank u voor de antwoorden. Ik denk niet dat ik de uitvoering van uw suggesties correct, ik heb geprobeerd alle 3.

Jim,

Ik ben zeker verward met die bestanden gaan waar toen las ik de jouwe.

nemen:
strings.txt \u003d bestand met strijkers Ik wil vinden
results.txt \u003d output file van zoekresultaten

Ik probeer:

find / directory / I / willen / zoeken /-type f | \
terwijl lees results.txt
doen
grep-f strings.txt $ results.txt
gedaan

Wanneer gebruik ik dit, dan krijg ik:

te lezen: "results.txt ': geen geldig identificatiemiddel

tijdperk,

Ik heb niet veel fouten met uw suggesties strijkers maar ik zoek nog steeds worden gesloopt, wat betekent dat de ruimten of '/' in de strijkers worden behandeld als pauzes keerpunt 1 string in een aantal kleine strings, die elk steeds gezocht.

Een beter voorbeeld van wat ik oorspronkelijk was proberen te doen is:

voor h in `cat strings.txt"; doen grep-rl "$ h" / map / pad / ik wil / naar / zoeken />> / home / directory / results.txt; gedaan

met behulp van /../../ in mijn oorspronkelijke bericht is niet de beste keuze van mijn kant als ze het equivalent van terug teken.


Ik ga blijven viool met alle suggesties, eventueel nadere aanwijzingen kunnen worden aangeboden, het zou een grote hulp.


Dankzij upstate jongen
  #5 (permalink)  
Old 05-16-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
De variabele in Jim's voorbeeld kan niet worden vernoemd results.txt; gewoon veranderen in bijvoorbeeld "bestand" en je moet wel goed.

Alles met grote ruimten moet worden dubbele aanhalingstekens.
  #6 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Geregistreerde gebruiker
  
 

Join Date: mei 2008
Posts: 17
Ik heb het naar:

find / directory / I / willen / zoeken /-type f | \
terwijl lezen bestand
doen
grep-f strings.txt $ results.txt
gedaan

Resultaten nu zijn:

grep:. txt: No such file or directory

Kan iemand spellen precies hoe ik zou hebben gebaseerd op het voorbeeld dat ik heb gebruikt?

Dankzij upstate jongen
  #7 (permalink)  
Old 05-16-2008
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.748
Zie bewerken hierboven, in het rood.
Closed Thread

Bladwijzers

Labels
grep, grep recursieve, recursieve grep

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 06:43 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0