使用git批量修改文件名

使用git批量修改文件名

  • 单个Excel文件测试批量修改是否正确;
$ echo 批量修改文件名old1.xlsx | sed -E 's/old/new/'

在这里插入图片描述

  • 目录下所有Excel文件,测试批量修改是否正确;
$ ls *.xlsx | sed -E 's/old/new/'

在这里插入图片描述

  • 使用echo命令查看:文件名修改前和修改后的结果,使用 for 循环进行迭代:
$ for f in `ls *.xlsx`; do echo $f `echo $f | sed -E 's/old/new/'`; done

在这里插入图片描述

  • 使用mv命令修改文件名(注:上面命令都只是测试修改文件名后的结果,是否是正确,并没有实际修改文件名);
$ for f in `ls *.xlsx`; do mv $f `echo $f | sed -E 's/old/new/'`; done;echo '---------------------------';ls *.xlsx;

在这里插入图片描述

  • 将Excel文件名中的小写new,改成大写OLD;
$ ls *.xlsx; for f in `ls *.xlsx`; do mv $f `echo $f | sed -E 's/new/OLD/'`; done ;ls *.xlsx;

在这里插入图片描述

  • 将Excel文件名中的改成大写OLD改成小写new,可以看到是没有替换成功,因为我写的是小写old;
$ echo '修改前:' ls *.xlsx; for f in `ls *.xlsx`; do mv $f `echo $f | sed -E 's/old/new/'`; done ; echo '修改后:' ls *.xlsx;

在这里插入图片描述

  • sed命令中加入参数"i",忽略大小写,将大写OLD替换成小写new,替换成功!!!
$ echo '修改前:' ls *.xlsx; for f in `ls *.xlsx`; do mv $f `echo $f | sed -E 's/old/new/i'`; done ; echo '修改后:' ls *.xlsx;

在这里插入图片描述

  • 总结:
  • 问题
    sed ‘s/*//’\是什么意思??

“s/查找内容/替换为的字串/'s代表是替换的意思,这里查找内容是: * 因为星号是sed的特殊字符,进行了转义。 替换为的字符串:这里没有填写任何内容,即是空字符串 意思就是 查找文件中的星号(*),并删除(替换为空)。 这里会对文件每一行进行查找替换,只替换(删除)每行第一处星号,后面的不删。如果全部都删,后面再加上g就行”

  • 参数说明:
  • s/查找内容/替换为的字串/’;s代表是替换的意思;
  • sed -e是可以在同一行内执行多条命令,而不加-e则不可以; (例:sed -e ‘s/xx/xx/’);
  • sed i 是忽略大小写,而不加i则是匹配大小写的;
  • sed g 全局替换,而不加则只是替换(删除)每行第一处匹配到的数据进行替换;
  • sed \ 转译;
  • sed 替换为的字符串:这里没有填写任何内容,即是空字符串;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值