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命令更名文件。

希望能对大家有点帮助~

猜你喜欢

转载自blog.csdn.net/TNTZS666/article/details/81173197
今日推荐