• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

linux文件替换

写一个SHELL脚本实现批量替换一个目录下所有文件中包括“a”换成“b”,如aaa.txt、adb.txt  执行脚本后文件名变成bbb.txt、bdb.txt
求大神帮助啊

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

#!/bin/bash#从ls指令获开当前目录下的所有文件,在for循环中以$filenamefull一次处理一个文件forfilenamefullin`ls*`;do#不是普通文件就跳过,处理下一个if[!-f"$filenamefull"];thencontinuefi#提取文件名(去掉末尾扩展名)存入$filename#目的是后面只修改文件名,不修改扩展名filename=${filenamefull%.*}#文件名中不包含'a'就跳过,处理下一个if[!"`echo$filename|grepa`"];thencontinuefi#将文件名中的'a'全部替换为'b',将新文件名存入$newfilenamenewfilename=${filename//a/b}#将文件扩展名存入$postfixpostfix=${filenamefull##*.}#将$newfilename和$postfix组合成新文件名,并用mv为文件改名mv$filenamefull${newfilename}.${postfix}done

上面的脚本中,提取文件名和扩展名文本替换那里是利用了bash内置的参数展开功能来处理字符串,你也可以用awk之类的来处理。

使用道具 举报

发新帖

发布任务需求已有1031289位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!