Shell脚本-目录中批量查找关键字是否存在

使用场景

在清理数据库中,发现好多以_BAK结尾的备表,但据开发讲好多_BAK在代码中被使用,所以我需要通过搜索代码中是否有表名,判断表是否被使用

脚本思路:

  1. 整理出要检查的表
  2. ,分割表转化为数组,循环表名数组
  3. 使用grep查找表名在文件夹中出现的次数
  4. 如果次数为0,则输出表名(此处拼装了drop语句)
  5. 循环结束,要执行的drop语句也生成了

Shell脚本

batch_lookup_keyword_dir.sh

#!/bin/bash

dir_path="/root/test"

keywords="TABLE_A_BAK,TABLE_B_BAK,TABLE_C_BAK,TABLE_D_BAK"

array=(${keywords//,/ })  
 
for var in ${array[@]}
do
    count=`grep -r $var $dir_path | wc -l`
    if [ $count == "0" ];then
        echo "drop table "$var";"
    fi
done
上一篇:flash版本更新导致shopex后台上传图片无效的问题


下一篇:阿大:“我们将在 D2 首次对外披露阿里前端在安全生产建设上的思考和成果”