Jak korzystać z grep w systemie Linux, aby w sposób wyczerpujący zgłaszać, czy ciąg jest obecny w pliku?

14

Chcę wiedzieć, czy ack_enabled not definedjest obecny w określonym pliku all_defs.txti zwrócić coś, dzięki czemu mogę zrozumieć, czy ciąg jest obecny, czy nie.

Czy ktoś może mi powiedzieć, jak to zrobić?

RoyOneMillion
źródło

Odpowiedzi:

19

Po prostu sprawdź kod wyjścia grep. wycisza -q, !neguje kod wyjścia:

if ! grep -q 'ack_enabled not defined' all_defs.txt ; then
    echo Not found.
fi
choroba
źródło
7

Więcej vebose one-liner

Następująca linijka jest jeszcze bardziej szczegółowa:

grep -q 'ack_enabled not defined' all_defs.txt && echo 'string found' || echo 'string not found'
Serge Stroobandt
źródło