Raskeste måten å finne tekst i mappen

stemmer
2

Jeg brukte returverdien av fgrep -s 'text' /folder/*.txtå finne ut om 'tekst' er i noen .txt fil i / mappe / . Det fungerer, men jeg synes det er for treg for det jeg trenger, som om den søker etter 'tekst' i alle filene før du gir meg et svar.

Jeg trenger noe som raskt gir meg et ja / nei svar når den finner minst en fil med 'tekst'. Sannsynligvis noen awk skript.

Publisert på 30/12/2009 klokken 00:28
kilden bruker
På andre språk...                            


3 svar

stemmer
5

Hvis jeg forstår spørsmålet ditt riktig, vil du:

fgrep -m1

Som stopper etter en kamp.

Svarte 30/12/2009 kl. 00:37
kilden bruker

stemmer
1

Du kan bruke dette til å forkorte søket hvis det er den typen som vil være basert på mopoke er svaret. Dette stopper etter den første kampen i den første filen der det er funnet:

# found=$(false)
found=1    # false
text="text"
for file in /folder/*.txt
do
    if fgrep -m1 "$text" "$file" > /dev/null
    then
        found=$?
        # echo "$text found in $file"
        break
    fi
done
# if [[ ! $found ]]
# then
#    echo "$text not found"
# fi
echo $found # or use exit $found

Edit : kommentert ut noen linjer og gjorde et par andre endringer.

Hvis det er et stort antall filer, så forkunne mislykkes, og du bør bruke en whileløkke med et findrør inn i den.

Hvis alt du ønsker å gjøre er å finne ut om det er noen .txt-filen i en mappe uavhengig av filens innhold, og deretter bruke noe sånt som dette helt av seg selv:

find /folder -name "*.txt"
Svarte 30/12/2009 kl. 04:16
kilden bruker

stemmer
0

Bygge på svarene ovenfor, bør dette gjøre det jeg tror?

find /folder -name \*.txt -exec grep "text" {}\;

Men jeg er ikke sikker på om jeg forstår problemet: er 'fgrep' gjøre en full dybde rekursjon før det begynner å gi ut eller noe? Funnet skal rapportere as-it-funn så kan være bedre for det du trenger, dunno.

[Rediger, ikke testet]: Endre 'grep' over for et skall-skript som gjør noe sånt som:

grep "text" && exit 0 || exit 1

For å få den sanne | falske ting du trenger å jobbe (du må leke seg med dette, har ikke testet akkurat trinnene her - ingen tilgang til Unix i øyeblikket :-()

Svarte 30/12/2009 kl. 08:15
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more