循环使用目录中的所有.sh文件来查找每个文件中的特定文本

时间:2016-04-29 14:27:27

标签: bash

我在目录中有一堆.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

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

试试这个:

grep -nc sql *.sh

看看这对你有何影响。如果您将sql文件命名为file.SQL,则可以添加-i。或者如果它们都有.sql扩展名。

grep -nc '\.sql' *.sh

对于你添加的评论,试试这个:

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