petterg Skrevet 22. september 2004 Del Skrevet 22. september 2004 (endret) Bruker find til å søke opp filer basert på filnavn. Bruker cat * | grep "streng" for å finne ut om noen av filene i mappa inneholder en bestemt streng. Men denne sier bare hvor mange ganger "streng" forekommer. Den sier ikke noe om i hvilke(n) fil(er) det forekommer. Hvordan kan jeg få listet opp navnene på alle filene som inneholer "streng"? Endret 24. september 2004 av petterg Lenke til kommentar
Terrasque Skrevet 22. september 2004 Del Skrevet 22. september 2004 man grep -H, --with-filename Print the filename for each match. så grep -H streng * Lenke til kommentar
tech Skrevet 22. september 2004 Del Skrevet 22. september 2004 Du trenger ikke -H, grep har default med filnavn, men du må bare huske og ikke pipe gjennom cat. bare bruk grep keyword *, du kan også bruke grep -R hvis du vil søke gjennom mapper (recrusive). Thomas Lenke til kommentar
petterg Skrevet 23. september 2004 Forfatter Del Skrevet 23. september 2004 Du trenger ikke -H, grep har default med filnavn, men du må bare huske og ikke pipe gjennom cat. bare bruk grep keyword *, du kan også bruke grep -R hvis du vil søke gjennom mapper (recrusive). Thomas Flott! Lenke til kommentar
iDude Skrevet 23. september 2004 Del Skrevet 23. september 2004 (endret) Bruker find til å søke opp filer basert på filnavn. Bruker cat * | grep "streng" for å finne ut om noen av filene i mappa inneholder en bestemt streng. Men denne sier bare hvor mange ganger "streng" forekommer. Den sier ikke noe om i hvilke(n) fil(er) det forekommer. Hvordan kan jeg få listet opp navnene på alle filene som inneholer "streng"? Bruk find for å finne filene du er interessert i sammen med grep: find sti -name "filnavn" -exec grep -H "streng" {} \; eksempel, for å finne alle tekstfiler med tekststrengen "earth" i seg under katalogen du står i: find . -name "*.txt" -exec grep -H "earth" {} \; Edit: "{}" angir filen "find" har funnet ";" brukes for å avslutte kommandoen til "-exec" (; må escapes for at shellet ditt ikke skal 'misforstå', derfor \ Endret 23. september 2004 av ibrotha Lenke til kommentar
Torbjørn Skrevet 23. september 2004 Del Skrevet 23. september 2004 det er en opsjon til grep (man grep) som gjør at det bare listes opp en match per filnavn også. Lenke til kommentar
petterg Skrevet 23. september 2004 Forfatter Del Skrevet 23. september 2004 Prøver å få --exclude="ignore" til å fungere med grep, men mulig jeg har missforstått hva den skal gjøre. Trodde den kunne brukes til å ikke liste filer som har teksten "ignore" i seg, men den eksluderer alle filer! # grep -c --exclude="ignore" "streng" * Har noen testfiler som inneholder ordene "streng" og "ignore" i varierende kombinasjoner. Et ord pr. linje. Uten --exclude får jeg: [filnavn]:[antall linjer med "streng"] Med --exclude kommer ingen output, og returverdien er 0! Lenke til kommentar
petterg Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 Ved å bruke -L parameteren ble det problemet også løst. (Ufattelig hvor mange ganger man skal lese man før man inser at det man trenger står der!) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå