Dette spørsmålet har allerede svar her :

Svar

Akkurat som -L søker etter innholdet i en fil uten samsvar, -l søker etter innholdet i en fil med en samsvar.

Så du må spesifisere -l -flagget i den andre «grepping».

I tillegg må du lede utgangen fra den første grep til den andre som kommandolinjeargumenter. Dette kan gjøres ved hjelp av xargs, som er et verktøy for å lese elementer fra standardinngangen. Hvis du piper filnavnene direkte, vil andre grep se etter strengen authenticate i filen navn .

så du bør ende opp med noe sånt som

grep -r --color -L "class public interface" * | xargs grep -l "authenticate"` 

Vær oppmerksom på at xargs som standard deler inngangen på et hvilket som helst hvitt område, så hvis du har filnavn med mellomrom (eller verre), må du bruke grep -Z og xargs -0 for å ha filnavnene atskilt med NUL-byte i stedet. ( I GNU grep, altså. Andre kan være forskjellige, f.eks. Har FreeBSD grep --null i stedet.)

Kommentarer

  • kan legge til forslag om å bruke grep -rLZ .. | xargs -0 .. for å unngå problemer på grunn av filnavn

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *