While read ligne avec grep

Je suis en train de rapport les lignes à l'aide de grep et tout.

Je sais que vous pouvez utiliser les éléments suivants pour comparer une liste de chaînes de inputs.txt et de les trouver dans votre fichier cible comme suit:

grep -f inputs.txt file_to_check

Ce que je veux, c'est de lire chaque ligne de la saisie de chaînes et grep individuelle dans une boucle.

J'ai donc essayé les méthodes suivantes:

cat inputs.txt | while read line; do if grep "$line" filename_to_check; then echo "found"; else echo "not found"; fi; done

Cela renvoie rien, quand j'ai rediriger la sortie vers un fichier.

while read line
do
if grep "$line" file_to_check
  then echo "found"
else 
  echo "not found"
fi
done < inputs.txt

Même que le premier, mais de ce que j'ai trouvé est de mieux à faire.

Je sais qu'il parcourt, ligne par ligne, parce que je peux remplacer grep avec echo $ligne et il imprime chaque ligne; mais quelle que soit la méthode ne retourne rien, comme grep -f ci-dessus, au lieu de cela, il montre:

not found
not found
not found
.
. etc.

Donc ce que je cherche, c'est quelque chose où il va itérer sur chaque ligne et de vérifier par grep à l'aide d'une instruction if pour déterminer si grep a effectivement trouvé ou non. Je sais que je ne peut pas avoir tous juste logique, mais la sortie de ce que je veux devrait ressembler à quelque chose comme:

Found *matching line in file_to_check* 
Found *matching line in file_to_check*
Not Found $line *(string that does not match)*
.
. etc.
  • lire les test de commandement ou [
InformationsquelleAutor Joshua | 2016-02-25