【shell】对指定文件夹中文件进行过滤,并修改文件内容的shell脚本

编写shell脚本,对某个文件夹内搜索指定文件并对文件内容进行更改:

在桌面创建shell_test文件夹

 进入shell_test文件夹,创建5个测试文件

在shell_test文件夹中再创建一个666文件夹,继续再创建5个文件,如图:

分别在每文件中写入内容:The moon is so round tonight,查看文件内容:

 

任务:搜索所有名为‘file...’的文件,并将文件内容中所有的‘round’替换为‘big’,

创建脚本,chang.sh

vim change.sh

编写脚本(注意单引号和反引号的区别):

#!/bin/bash

# 获取传入的第一个参数,即文件位置
cur_path="$1"
 
# 遍历文件夹内所有的文件及文件夹,注意此处不是单引号,是反引号(因为这是一条命令)
for doc in `ls "${cur_path}"`
do
    # 如果遍历到的是文件,则进行内容的替换
    if [ -f "${cur_path}/${doc}" ]
    then
        # 匹配文件名,从文件名的第一位开始,匹配4位;利用sed将文件内容进行更改
        [ "file" == "${doc:0:4}" ] && sed -i "1s#round#big#" "${cur_path}/${doc}"

    # 如果遍历到的是文件夹,则递归调用本函数,传入的参数为当前文件夹,即拼接后的路径    
    else
        bash $0 "${cur_path}/${doc}"
    fi
done

运行脚本:

查看文件内容:

至此,完成了搜索指定目录下的文件,并将文件内容替换为“big”。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值