In meinem Bash-Skript versuche ich, eine Zeile zu drucken, wenn eine bestimmte Zeichenfolge in einer Datei nicht vorhanden ist.
if grep -q "$user2" /etc/passwd; then
echo "User does exist!!"
So habe ich es geschrieben, wenn die Zeichenfolge in der Datei vorhanden sein soll, aber wie kann ich dies ändern, damit "Benutzer existiert nicht" gedruckt wird, wenn der Benutzer nicht in der Datei / etc / passwd gefunden wird?
if ! grep ...
Aussage nicht funktioniert. Das ist also eine Alternative.Ich löse es mit einem einfachen Liner:
Der Befehl überprüft alle Dateien im Verzeichnis mit der Erweiterung txt und schreibt entweder die Suchzeichenfolge (dh "tasks:"), falls gefunden, oder den Namen der Datei.
quelle
Sie können die grep-Option "-L / --files-without-match" verwenden , um zu überprüfen, ob die Datei keinen String enthält:
quelle