Find sætning eller ord i en fil

At finde et bestemt ord eller en betemt sætning inde i en fil, er en funktion linux opfandt længe inden microsoft kopierede denne funktion. Og hvordan gør du så.

find /path/to/dir -type f -print0 | xargs -0 grep -l "foo"

Denne metode med at bruge

-print0

er klart at foretrække, idet den giver dig mulighed for at søge i filer med specialtegn, såsom æ, ø, å og mellemrum. Hvis du udelader

-print0

commandoen risikere du med stor sandsynlighed at at der opstår fejl i søgningen. så til dem der ikke nøjes med at bruge de 25 internationale bogstaver brug

-print0

Du kan også bruge denne kommando som benytter sig af

-exec

kommandoen men det bruger flere resourcer end find commandoen med xargs
Her er dog et par eksempler

cd /path/to/dir
find . -type f -exec grep -l "word" '{}' +
find . -type f -exec grep -l "seting" '{}' +
find . -type f -exec grep -l "foo" '{}' +

Skal du bruge dette som en tekstfil med hvad der er fundet tilføjer du hver linie med følgende:

>>/sti/til/hvor/du/skal/have/filen/output.txt

Denne laver så en fin tekstfil med alt den har fundet. Det er nemt at tjekke om du har fundet det du ønsker dig.

Tjek din output,txt med cat

/sti/til/hvor/du/skal/have/filen/output.txt

Source: http://www.cyberciti.biz/faq/howto-recursively-search-all-files-for-words/

Skriv et svar