web-dev-qa-db-fra.com

Comment utiliser grep sous Linux pour indiquer de manière détaillée si une chaîne est présente dans un fichier?

Je veux savoir si ack_enabled not defined est présent dans un fichier particulier all_defs.txt et renvoyer quelque chose, par lequel je peux comprendre si la chaîne est présente ou non.

Quelqu'un peut-il me dire comment faire cela?

14
RoyOneMillion

Il suffit de vérifier le code de sortie de grep. -q le rend silencieux, ! annule le code de sortie:

if ! grep -q 'ack_enabled not defined' all_defs.txt ; then
    echo Not found.
fi
19
choroba

Une ligne plus vebose

Le one-liner suivant est encore plus prolixe:

grep -q 'ack_enabled not defined' all_defs.txt && echo 'string found' || echo 'string not found'
7