2016-04-29 93 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':'grep的-c 「something.sql」 * .sh',欲瞭解更多信息,請查看它。 –

+0

您正在瀏覽bash腳本只是爲了引用sql文件 - 或者您需要查看存儲過程的sql文件。我不確定您是否正確使用術語「存儲過程」,或者您只是缺少信息。 – SaintHax

+0

@SaintHax我只需要查看.sh文件並找到類似於對存儲過程的引用的任何內容。所以,像sp.sql的任何東西我都會計算一次。如果它調用2-3個存儲過程,那麼這個文件名就會有很多值。 – SS113

回答

3

試試這個:

grep -nc sql *.sh

看看上面感動你。如果您將file文件命名爲file.SQL,則可以添加-i。或者如果他們都有.sql擴展名。

grep -nc '\.sql' *.sh

對於你對此有何評論你加入,試試這個:

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

謝謝!它很棒! – SS113

相關問題