Linux脚本攻略学习笔记之${}以及rename实例演示

一、${}

1.1、提取文件名

file_jpg='sample.jpg'
  name=${file_jpg%.*}
 echo File name is:$name

在这里插入图片描述

1.2、提取扩展名

extension=${file_jpg#*.}
echo Extension is :$extension 

在这里插入图片描述

1.3、${VAR%.*}

${VAR%.*} 的含义如下所述:
 从 $VAR 中删除位于 % 右侧的通配符(在前例中是. * )所匹配的字符串。通配符从右向左
进行匹配。
 给 VAR 赋值, VAR=sample.jpg 。那么,通配符从右向左就会匹配到.jpg,因此,从 $VAR
中删除匹配结果,就会得到输出 sample

% 属于非贪婪(non-greedy)操作。它从右到左找出匹配通配符的最短结果。还有另一个操作
符 %% ,这个操作符与 % 相似,但行为模式却是贪婪的,这意味着它会匹配符合条件的最长的字符串

1.3.1非贪婪模式

在这里插入图片描述

1.3.2、贪婪模式

在这里插入图片描述
操作符 %% 则用 .* 从右向左执行贪婪匹配( .fun.book.txt )

1.4、${VAR#*.}

${VAR#*.} 的含义如下所述:
从 $VAR 中删除位于 # 右侧的通配符(即在前例中使用的 *. )所匹配的字符串。通配
符从左向右进行匹配。
和 %% 类似, # 也有一个相对应的贪婪操作符 ## 。
##从左向右进行贪婪匹配,并从指定变量中删除匹配结果

1.4.1、非贪婪模式

  var=hack.fun.book.txt
echo ${var#*.}

在这里插入图片描述

1.4.2、贪婪模式

echo ${var##*.}

在这里插入图片描述
操作符 ## 则用 *. 从左向右执行贪婪匹配( txt )

1.5、提取域名不同部分

URL=www.oracle.com
echo ${URL%.*}
echo ${URL%%.*}
echo ${URL#*.}
echo ${URL##*.}

在这里插入图片描述

二、rename

rename 命令利用Perl正则表达式修改文件名。综合运用 find 、 rename 和 mv ,我们能够做到很多。

2.1、利用rename脚本批量重命名

在这里插入图片描述
把以上图片格式名字改为image-1格式

#!/bin/bash
#文件名:rename.sh
#用途:重命名.jpg或 .png
count=1

for img in `find .  -iname '*.jpg' -o  -iname '*.png' -type f -maxdepth 1`
 do new=image-$count.${img##*.}
  echo  "Renaming $img to $new"
mv    "$img" "$new" #重命名
let  count++

done

结果如下
在这里插入图片描述

2.2、rename批量重命名

rename *.jpg *.JPG
把所有jpg格式的改为JPG

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜的中年程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值