Comment puis-je faire en sorte que la commande grep localise certains mots dans les fichiers spécifiés par les routes trouvées par la commande locate ?
locate my.cnf | grep user
(Je veux que la commande grep recherche le mot "utilisateur" dans les fichiers trouvés pour la commande de localisation)
Réponse acceptée :
Si vos résultats de recherche sont sûrs de renvoyer des chemins sans espaces, vous pouvez utiliser xargs
comme ceci :
locate my.cnf | xargs grep user
Cependant, vous devez prendre l'habitude de vous protéger pour gérer le cas où un chemin ou un nom de fichier pourrait contenir un espace en indiquant xargs
utiliser null
comme séparateur et indiquant locate
(ou quel que soit le programme que vous utilisez pour renvoyer des chaînes) pour l'envoyer également comme séparateur comme ceci :
locate -0 my.cnf | xargs -0 grep user
Cela fonctionnerait même si votre chemin incluait des blancs comme /name with space/my.cnf
.