2016-04-29 4 views
0

У меня есть куча файлов .sh в каталоге. Мне нужно выяснить, сколько хранимых процедур каждый из них вызывает. Какой был бы лучший способ сделать это?Зацикливание всех файлов .sh в каталоге для поиска определенного текста в каждом

Я ДЕЙСТВИТЕЛЬНО новичок в сценариях bash, так что это все очень ново для меня. Из того, что я искал в Интернете, я взломал исходную точку (я думаю), но я понятия не имею, как я открою каждый файл и найду «something.sql», а затем выложил количество раз, которое было найдено в каждом файле.

Вот что у меня есть:

#!/bin/sh 

for i in 'ls *.sh' 
    echo -e "\n **** START****" 
    do 
     echo -e " \n Filename: $i" 
    done 
     echo -e "\n **** END ****" 
done 

Спасибо за любую помощь!

+3

Существует специальная команда 'grep' для этого USECASE:' Grep -c "something.sql" * .sh', Для более подробной информации смотрите. –

+0

Вы просматриваете скрипты bash только для ссылок на sql-файлы - или вам нужно затем изучить sql-файлы для хранимых процедур. Я не уверен, что вы правильно используете термин «хранимые процедуры», или вам просто не хватает информации. – SaintHax

+0

@SaintHax Мне просто нужно заглянуть в файл .sh и найти что-нибудь, что напоминает ссылку на хранимую процедуру. Итак, что-то вроде sp.sql, я бы подсчитал его по имени этого файла один раз. если он называет 2-3 хранимых процедуры, то для этого имени файла будет много счетчиков для него. – SS113

ответ

3

Попробуйте это:

grep -nc sql *.sh

Смотрите, как это перемещает вас. Вы можете добавить -i, если вы называете sql-файлы в файле file.SQL тоже. Или, если все они имеют расширение .sql.

grep -nc '\.sql' *.sh

Для вас комментарий вы добавили, попробуйте следующее:

for i in *.sh 
    grep -Hc '\.sql' $i 
    grep '\.sql' $i 
done 
+0

Спасибо! Он отлично работает! – SS113

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

  • Нет связанных вопросов^_^