Pourquoi vous passez -c
? Cela ne fera qu'indiquer le nombre de correspondances. De même, il n'y a aucune raison d'utiliser -r
. Je vous suggère de lire man grep
.
Pour rechercher 2 mots existant sur la même ligne, il suffit de faire :
grep "word1" FILE | grep "word2"
grep "word1" FILE
imprimera toutes les lignes de FILE contenant le mot 1, et ensuite grep "word2"
imprimera les lignes qui contiennent le mot 2. Par conséquent, si vous les combinez en utilisant un pipe, les lignes contenant à la fois le mot1 et le mot2 seront affichées.
Si vous voulez simplement compter combien de lignes ont les deux mots sur la même ligne, faites-le :
grep "word1" FILE | grep -c "word2"
De plus, pour répondre à votre question, pourquoi est-ce que ça reste bloqué : en grep -c "word1"
vous n'avez pas spécifié de fichier. Par conséquent, grep
attend une contribution de stdin
C'est pourquoi il semble se bloquer. Vous pouvez appuyer sur Ctrl + D pour envoyer un EOF (end-of-file) afin qu'il quitte.