Shell脚本:从包含一堆文本文件的目录中找出包含某关键字的文件

#!/usr/bin/env bash
# Author    : 蛙鳜鸡鹳狸猿
# create_ts : 2019-11-11
# program   : Search obj among docs under a directory


function search_obj_among_docs() {
    # Search obj among docs under a directory
        # $1: OS directory path
        # $2: Obj to search(pass to built-in `grep`)
    local path=$1
    local path=${path%/}
    local IFS=$'\n'
    # shellcheck disable=SC2045
    for doc in $(ls "${path}")
    do
        if [[ -d "${path}/${doc}" ]]; then
            search_obj_among_docs "${path}/${doc}" "$2"
        else
            # shellcheck disable=SC2002
            grep "$2" "${path}/${doc}" &> /dev/null
            # shellcheck disable=SC2181
            if [[ $? -eq 0 ]]; then
                echo "${path}/${doc}"
            fi
        fi
    done
}


search_obj_among_docs "$1" "$2"
# To take a snack, execute the call below at your terminal:
# ./search_obj_among_docs.sh /etc UUID 2> /dev/null

之所以会写这么一个文本文件检索的脚本,是因为工作中使用的Terraform工具维护着若干各个同事自定义的.tf配置文件,每次想要修改一些内容时,如果一个文件一个文件地去找会相当麻烦。通过这个脚本,只要传入配置文件群所在的文件夹和一个目标关键字,就能找到需要修改的单个或者多个配置文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值