天天看點

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