Linux怎么查找指定后缀名文件以及批量修改后缀名

今天做了一道Linux的题目,题目如下:

这里写图片描述
其中查找并不难实现,使用find语句:find /var/log -name “*.log” 就可以实现,shell脚本如下:

#!/bin/bash

find /var/log -name "*.log" | while read i
do 
echo $i  #显示文件名称
done

到这里.log文件已经找到了,但是要将他替换成.config文件就有麻烦了,因为获取到的i是包含后缀名的,不管用rename还是mv都不能直接修改。所以这个时候需要先将获取到的文件名后缀名删除。这里参考了网上其他人的经验,只要一句代码就能实现,代码如下:

find /var/log -name "*.log" | awk '{new=gensub(".log",".config",1);system("mv "$0" "new)}'


  • 用awk处理,gensub函数将.log后缀替换为.config并返回替换后的字串赋值给变量new,最后借用system调用执行mv命令更名文件。

希望能对大家有点帮助~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值