J'utilise généralement perl one liners au lieu de grep pour rechercher dans les fichiers.Comment imprimer les noms des fichiers en cours de traitement dans un Perl One-Liner?
Par exemple suivant affiche tous les emplacements contenant #include <stdio.h>
perl -ne "print if(/#include\s*[\"<]stdio.h/)" */*.[ch]
Mais je ne pouvais pas trouver un moyen d'imprimer le nom du fichier qui a obtenu ces lignes. J'ai essayé d'imprimer $ARGV[0]
mais sans succès. Alors, comment imprimez-vous les noms de fichiers qui contiennent ces lignes?
Utiliser grep. Et puis votre problème disparaîtra (grep -l) –
@depesz Il disparaît seulement jusqu'à ce que vous deviez faire quelque chose de plus complexe. –
Rétractation de ma réponse: $ _ était interprété par le shell, pas par perl, malgré des guillemets, etc. Essayez echo $ _: La var contient la deuxième partie de la dernière commande, c'est pourquoi ma réponse semblait imprimer les noms de fichiers Champs obligatoires. –