Tähän kysymykseen on jo annettu vastauksia :

Vastaa

Aivan kuten -L etsii tiedoston sisältöä ilman vastaavuutta, -l etsii vastaavan tiedoston sisältöä.

Joten sinun on määritettävä -l -lippu toiseen ”rypistykseen”.

Lisäksi sinun on ohjattava ensimmäisen grep -lähtö toiselle komentoriviargumentteina. Tämä voidaan tehdä käyttämällä xargs -työkalua, joka on työkalu, jolla voidaan lukea kohteita vakiotulosta. Tiedostojen nimien suora syöttäminen tekisi toisen grepin etsimästä merkkijonoa authenticate tiedostossa nimet .

joten sinun pitäisi päätyä esimerkiksi

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

Huomaa, että xargs jakaa oletusarvoisesti syötteen missä tahansa tyhjässä tilassa, joten jos sinulla on tiedostonimi välilyönnillä (tai pahemmalla), sinun on käytettävä grep -Z ja xargs -0, jotta tiedostonimet erotetaan NUL-tavuilla. ( Toisin sanoen GNU grepissä voi olla erilainen, esim. FreeBSD grepillä on sen sijaan --null.)

Kommentit

  • voi lisätä ehdotuksen grep -rLZ .. | xargs -0 .. -toiminnon käyttämiseen tiedostojen nimien aiheuttamien ongelmien välttämiseksi

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *