xargs - si la condition et l'echo {}

J'ai des fichiers qui contiennent un particulier des chaînes de caractères. Ce que je veux faire est, de rechercher un emplacement pour le fichier, si le fichier existe grep pour le motif; si la valeur est true, faire quelque chose.

find -iname file.xxx| xargs -I {} if grep -Fq "string" {} ; then echo {} ; fi

Les problèmes sont:

  • xargs ne fonctionne pas avec l'instruction if.
  • echo {} ne donne pas le nom de fichier, au lieu de cela donne {}.

Comment puis-je résoudre ces?

Pourquoi ne pas avoir find exécuter grep lui-même?
faire quelque chose sur le fichier ou grepped ligne?

OriginalL'auteur Population Xplosive | 2012-02-28