válasz
Csakúgy, mint -L
egy fájl tartalmát egyezés nélkül, -l
egyezéssel keresi a fájl tartalmát.
Tehát meg kell adnia a -l
jelzőt a második “grepping” -ben.
Ezenkívül az első grep
kimenetét a másodikra kell irányítania parancssori argumentumként. Ez megtehető az xargs
használatával, amely egy elem az elemek elolvasásához a szokásos bemenetről. A fájlnevek közvetlen beillesztésével a második grep megkeresi a authenticate
karakterláncot a nevek fájlban.
, így végül valami hasonlóval:
grep -r --color -L "class public interface" * | xargs grep -l "authenticate"`
Ne feledje, hogy az xargs
alapértelmezés szerint felosztja a bemenetet bármely szóközben, tehát ha vannak fájlnevei szóközökkel (vagy rosszabb esetben) “grep -Z
és xargs -0
fájlokat kell használnia, hogy a fájlneveket NUL bájt választja el. ( Vagyis a GNU grep-ben. Mások eltérhetnek, például a FreeBSD grep --null
-et tartalmaz.)
grep -rLZ .. | xargs -0 ..
használatához a fájlnevekből adódó problémák elkerülése érdekében