2016-04-29 72 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

相关问题