批量修改文件后缀

有时候需要批量修改文件名后缀,比如把*.aa改为*.bb,网上搜的都是shell程序,我试验一下,下面bash命令可以解决:

ls *.aa  | awk -F '.' '{print $1}' | xargs -I {} mv {}.aa {}.bb

xargs -I {} 表示用参数替换后面的{}

上面说到shell程序,所以也可以写一个脚本,比如rn_ext.sh:

for i in `ls *.$1`
do
    mv $i ${i%.*}.$2
done

然后就可以用来改后缀了,比如我要把aa后缀改为bb后缀:

. rn_ext.sh  aa bb

${i%.*}是取文件名中主体部分。例如:

file="thisfile.txt"
echo "filename:${file%.*}"
echo "extension:${file##*.}"

输出:

filename:thisfile
extension:txt

Linux有个rename命令,我用的Ubuntu,用这个命令需要安装rename,安装后:

ls *.aa |xargs rename 's/.aa/.bb/'

这样也能*.aa->*.bb。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值