2013-11-20 5 views
0

У меня есть более 500 файлов php и вам нужно найти, где находятся файлы php. Мне нужен сценарий или что-то, что могло бы помочь мне найти эти обычаи/упоминания в файлах. Я думаю написать сценарий bash, чтобы сделать это, но я не уверен, что это хорошая идея. У вас есть идеи по этому поводу?Получение имен файлов из каталога и поиск этих имен файлов в php-коде

+1

Зачем нужна командная строка для этого? – Martijn

ответ

0

Это то, что я сделал в конце. Этот сценарий bash решил мою проблему в целом. Тем не менее существует проблема с именами файлов с пробелами. Я получаю ошибки, если в имени файла есть пробелы. Пока это нормально для меня.

#!/bin/bash 

DIR="/path/to/dir" 

# save and change IFS 
OLDIFS=$IFS 
IFS=$'\n' 

# read all file name into an array 
FILES=$(find $DIR -type f -name "*.php") 
DFILES=$FILES 

#General report file 
ofile="general-report.txt" 

#Unused files report file 
nuffile="unused-files-report.txt" 

#count unused files 
yok=0 

echo "Files have found. Proccessing..." 

#Title for general report 
echo "GENERAL REPORT FOR X " >> "$ofile" 

#Title for unused files report 
echo "UNUSED FILES FOR X" >> "$nuffile" 

for i in $FILES 
do 
    bulundu=0 
    dosyaadi=$(basename $i) 
    echo "###########################################################################################">> "$ofile" 
    echo "###########################################################################################" 
    echo "------>>>>> Looking for $dosyaadi ..." 
    echo "------>>>>> Looking for $dosyaadi ..." >> "$ofile" 
    for j in $DFILES 
    do 
     if grep -rnH --color=auto "$dosyaadi" "$j" 
      then 
      grep -rnH --color=auto "$dosyaadi" "$j" >> "$ofile" 
      bulundu=$((bulundu+1)) 
     fi 
    done 
    if [ $bulundu -eq 0 ] 
     then 
     yok=$((yok+1)) 
     echo "DOSYA $yok -->> $dosyaadi dosyasi hic bir php kodunda bulunamadi. Kullanilmiyor olmasi muhtemel.">> "$nuffile" 
     echo "Dosyanin konumu: $i">> "$nuffile" 
     echo -e '\n\n'>> "$nuffile" 
    fi 
    echo "__________________________________________________________________________________________">> "$ofile" 
    echo "__________________________________________________________________________________________" 
    echo "$dosyaadi dosyasinin diger dosyalarda $bulundu sayida eslesme bulundu.">> "$ofile" 
    echo "$dosyaadi dosyasinin diger dosyalarda $bulundu sayida eslesme bulundu." 
    echo "__________________________________________________________________________________________">> "$ofile" 
    echo "__________________________________________________________________________________________" 
    echo -e '\n\n\n\n'>> "$ofile" 
    echo -e '\n\n\n\n' 
done 
echo "TOPLAM $yok tane dosya kullanilmiyor gorunuyor!">> "$nuffile" 
echo "Heyyo! Tüm tarama bitti $ofile dosyasına yazıldı." 
# restore it 
IFS=$OLDIFS 
1

С grep в командной строке:

grep -rnH --color=auto 'require "test.php"' SOURCE_FOLDER 

Команда напечатает все вхождение в require "test.php" вместе с именем файла и номер строки (раскрашенный)

Смежные вопросы