Welchen präzisen Befehl kann ich verwenden, um alle Dateien zu finden, die KEINE Textzeichenfolge enthalten?
Ich habe dies (mit -v, um die grep-Parameter zu invertieren) ohne Erfolg versucht:
find . -exec grep -v -l shared.php {} \;
Jemand sagte, das würde funktionieren:
find . ! -exec grep -l shared.php {} \;
Aber es scheint bei mir nicht zu funktionieren.
Diese Seite hat dieses Beispiel:
find ./logs -size +1c > t._tmp
while read filename
do
grep -q "Process Complete" $filename
if [ $? -ne 0 ] ; then
echo $filename
fi
done < t._tmp
rm -f t_tmp
Aber das ist umständlich und überhaupt nicht prägnant.
ps: Ich weiß, dass grep -L *
dies der Fall sein wird, aber wie kann ich den Befehl find in Kombination mit grep verwenden, um Dateien auszuschließen, ist das, was ich wirklich wissen möchte.
pss: Ich bin mir auch nicht sicher, wie man Grep-Unterverzeichnisse in die grep -L *
Syntax einbindet , aber ich möchte trotzdem wissen, wie man es mit verwendet find
:)