linux下如何利用文件夹内的文件名批量重命名文件夹

我有大量的文件夹,每个文件夹内都包含有特定的文件。现在我想用文件夹内的指定格式的文件的名字,来重命名文件夹的名称。请问这种脚本如何实现?例如:文件夹名为wilber.16... 我有大量的文件夹,每个文件夹内都包含有特定的文件。现在我想用文件夹内的指定格式的文件的名字,来重命名文件夹的名称。请问这种脚本如何实现?
例如:文件夹名为 wilber.1643 ,文件夹内有一个文件为20130401.seed,如何利用脚本把文件夹的名字重命名为20130401.
展开
 我来答
cnbubble
2017-10-24 · TA获得超过2607个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:764万
展开全部

上述文件在各个文件夹不重名,如果重名,更改文件夹可能有问题

不包含子文件夹的修改

测试了一个,可以执行

beenhuang
2017-10-23 · TA获得超过209个赞
知道答主
回答量:103
采纳率:66%
帮助的人:40.3万
展开全部

wilber.1643 目录里的文件名有什么规则,最好能多列出几个

#!/bin/bash
name=`find ./ -name "*.seed" |sort -n | awk -F "[/|.]" '{print $3 ":" $4}'`
for i in $name
    do
        a=`echo $i |awk -F ":" '{print $1}'`
        b=`echo $i |awk -F ":" '{print $2}'`
        mv ./"$a" "$b"
done
追问

您实验成功了吗,为什么我运行后报错?注意一下脚本是要放在文件夹外面运行的,因为有很多类似的文件夹,我想同时完成命名,如图右边展示的。

追答
#!/bin/bash
name=`find ./ -name "*.seed" |sort -n`
for i in $name
    do 
    a=`echo $i | awk -F "/" '{print $2}'`
    b=`echo $i | awk -F "[/.]" '{print $5}'`
    mv ./"$a" "$b" && echo "rename $a - $b success!" || echo "failed!"
  done

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式