Comment grep, à l'exclusion de certains modèles?

J'aimerais trouver des lignes dans des fichiers avec une occurrence de certains modèle et une absence de tout autre motif. Par exemple, j'ai besoin de trouver tous les fichiers/les lignes y compris loom à l'exception de ceux avec gloom. Donc, je peux trouver loom avec la commande:

grep -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp)

Maintenant, je veux rechercher loom à l'exclusion de gloom. Cependant, les deux commandes suivantes a échoué:

grep -v 'gloom' -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp)
grep -n 'loom' -v 'gloom' ~/projects/**/trunk/src/**/*.@(h|cpp)

Que dois-je faire pour atteindre mon objectif?

EDIT 1: je veux dire que loom et gloom sont les séquences de caractères (pas nécessairement les mots). Donc, j'ai besoin, par exemple, bloomberg dans la sortie de commande et n'ont pas besoin ungloomy.

EDIT 2: Il y a échantillon de de mes attentes.
Les deux lignes suivantes sont en sortie de commande:

J'ai affronté les icônes qui surgit à travers le voile de l'encens.

Arty est slooming dans un sombre jour.

Les deux lignes suivantes ne sont pas dans la sortie de commande:

C'est gloomyin’ de carthame terrible — grand muckle doolders o’ cloods.

Dans le sud-ouest de la tour de la hauteur pyntit hall

  • Vous êtes à la recherche pour les fichiers qui correspondent à vos critères de lignes qui correspondent à vos critères?
  • Je suis à la recherche de fichiers avec les lignes correspondant à mes critères. Et je veux voir la liste de tous les jeux de nom de fichier + le numéro de ligne correspondant + de correspondance de la ligne elle-même.
  • Si la ligne a été there is a loom in the gloom, voudriez - vous que la ligne imprimée? Juste essayer de comprendre si vous êtes simplement à la recherche pour les lignes où le métier à tisser se produit autrement que dans le cadre de la tristesse ou si vous avez vraiment ne voulez exclure les lignes contenant des ténèbres, même lorsque métier à tisser apparaît sur son propre ailleurs sur la ligne. Poster quelques échantillons d'entrée et de sortie attendue pourrait l'aider.
  • Si votre question est vraiment How do I find lines containing the string "loom" where "loom" is not preceded by the letter "g"? Si tu avais posté quelques échantillons d'entrée et de sortie souhaité que aurait beaucoup aidé. La réponse à cette question est incluse dans les réponses ci-dessous.
  • Oui, vous avez raison, j'ai besoin de toutes les lignes, où se produit loom sans précédé g. (Je suis désolé. J'ai commencé à commenter hier, mais jamais fini. Accidentellement ce commentaire a été envoyé).
  • Au début de votre question, vous avez dit que vous voulez lignes avec un loom et à l'absence de gloom. Mais si votre Edit 2, le deuxième exemple de sortie, il est à la fois loom dans slooming et gloom dans gloomy jour, pourquoi?
  • J'ai ajouté Edit 2, car entendu que la formulation originale a été source de confusion.
  • Je semble toujours être source de confusion pour moi, ce sont les réponses à partir de ci-dessous toutes les bonnes? Je peux voir quelques raisonnable chers?
  • Oui, certaines réponses sont bonnes. Je n'ai pas à décider quel d'entre eux à accepter, encore.

InformationsquelleAutor Loom | 2013-08-27