{{tag>sysadmin dev script bash recherche}}
====== Rechercher une chaîne dans un ensemble de fichiers ======
Retrouver une chaîne de caractères dans un ensemble de fichiers sources. Ce script est une simple **boucle for**. Elle peut être directement tapée dans l’interpréteur bash. On récupère les fichiers dont on souhaite scruter le contenu. Ils sont fournis séquentiellement en argument à la commande grep avec les options **%%--%%with-filemane** et **%%--%%line-number** qui permettent de préfixer le résultat avec le nom du fichier et la ligne lorsqu' il y a correspondance (matching c'est a dire lorsque la chaîne recherchée est présente) . Dans cette exemple on rechecher la chaîne **//session_is_registered//** qui correspond a un nom de fonction dans des fichiers scripts PHP:
for f in $(find . -type f -name \*.php -print);
do
grep --with-filename --line-number session_is_registered $f
done
Ci-dessous un exemple de résultat retourné par le script:
./index.php:28:if(session_is_registered('nProfil') && session_is_registered('userid') && session_is_registered('logopath')){
./x_load.php:252: if(!session_is_registered('nProfil')) {
./x_load.php:426: if(session_is_registered('COORD_PROJECTION')){
./importcsv/index.php:23:if(session_is_registered('nProfil')){
./indexold.php:28:if(session_is_registered('nProfil') && session_is_registered('userid') && session_is_registered('logopath')){
./template/fiche/releve_proprio.php:4:if(session_is_registered('nProfil') && session_is_registered('userid') ){
./template/fiche/releve_proprioold.php:4:if(session_is_registered('nProfil') && session_is_registered('userid') ){
./edition/ajax.php:20:if(!session_is_registered('nProfil'))exit ;
./edition/utils.php:504: if(!session_is_registered(LOG_SESSION)){