petterg Skrevet 22. september 2004 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
Terrasque Skrevet 22. september 2004 Skrevet 22. september 2004 man grep -H, --with-filename Print the filename for each match. så grep -H streng *
tech Skrevet 22. september 2004 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
petterg Skrevet 23. september 2004 Forfatter 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!
iDude Skrevet 23. september 2004 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
Torbjørn Skrevet 23. september 2004 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å.
petterg Skrevet 23. september 2004 Forfatter 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!
petterg Skrevet 24. september 2004 Forfatter 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!)
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å