Der folgende grep-Ausdruck listet erfolgreich alle EXE- und HTML-Dateien im aktuellen Verzeichnis und in den Unterverzeichnissen auf.
ls -R |grep -E .*[\.exe]$\|.*[\.html]$
Wie invertiere ich dieses Ergebnis, um diejenigen aufzulisten, die stattdessen keine .html- oder .exe-Datei sind? (Das heißt , !=.)
-v/--invert-matchnicht unbedingt umdreht, ob der Rückkehrcode vongrepeine erfolgreiche Ausführung anzeigt, sondern stattdessen mit den Zeilen übereinstimmt, die sonst nicht übereinstimmen würden. Diejenigen, die den Rückkehrcode invertieren möchten (dh erfolgreich sind, wenn nicht alle Zeilen mit dem Muster übereinstimmen, sondern mindestens eine), sollten verwenden! grep. Dies findet Verwendung in bedingten Ausdrücken, zif ! ls | grep -qE ".(\.exe)$"; then echo No .exe files in $(pwd); fi.