linux无法替换已有文件,linux文件替换

#!/bin/bash

# 从ls指令获取当前目录下的所有文件,在for循环中以$filenamefull一次处理一个文件

for filenamefull in `ls *`; do

# 不是普通文件就跳过,处理下一个

if [ ! -f "$filenamefull" ]; then

continue

fi

# 提取文件名(去掉末尾扩展名)存入$filename

# 目的是后面只修改文件名,不修改扩展名

filename=${filenamefull%.*}

# 文件名中不包含'a'就跳过,处理下一个

if [ ! "`echo $filename | grep a`" ]; then

continue

fi

# 将文件名中的'a'全部替换为'b',将新文件名存入$newfilename

newfilename=${filename//a/b}

# 将文件扩展名存入$postfix

postfix=${filenamefull##*.}

# 将$newfilename和$postfix组合成新文件名,并用mv为文件改名

mv $filenamefull ${newfilename}.${postfix}

done

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值