Wie verwendet man grep unter Linux, um ausführlich zu berichten, ob eine Zeichenfolge in einer Datei vorhanden ist?

14

Ich möchte wissen, ob ack_enabled not definedeine bestimmte Datei vorhanden ist, all_defs.txtund etwas zurückgeben, anhand dessen ich verstehen kann, ob die Zeichenfolge vorhanden ist oder nicht.

Kann mir jemand sagen, wie das geht?

RoyOneMillion
quelle

Antworten:

19

Überprüfen Sie einfach den Exit-Code von grep. -qmacht es still, !negiert den Exit-Code:

if ! grep -q 'ack_enabled not defined' all_defs.txt ; then
    echo Not found.
fi
Choroba
quelle
7

Mehr Vebose-Einzeiler

Der folgende Einzeiler ist noch ausführlicher:

grep -q 'ack_enabled not defined' all_defs.txt && echo 'string found' || echo 'string not found'
Serge Stroobandt
quelle