Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀

Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀

O、字符串处理,包括
1、字符串截取
2、字符串替换
3、字符串掐头
4、字符串去尾

一、字符串截取
字符串本身没有变化
0、使用#查看变量长度
echo ${#name}

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

语法:
${变量:起始位置:长度}
phone=123456789
1、编号从0开始,取得字符串从起始位置开始
echo ${phone:0:3}

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

2、如果没有长度选项,默认是截取到变量字符串尾
echo ${phone:3}

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

3、如果长度是负值,表示截取到从右往左的第几位,最后一位算第0位
echo ${phone:0:-2}
1234567

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

二、字符串替换
字符串本身没有变化
1、单个替换,替换第一个旧字符串
${变量名/旧字符串/新字符串}

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

2、替换全部结果
${变量名//旧字符串/新字符串}

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

三、字符串掐头
不影响原变量字符串
1、从左到右,最短匹配删除
${变量名#关键字}

例如:
echo ${A#*:}
将最左边的冒号以及前面的字符串去除

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

2、从左到右,最长匹配删除
${变量名##关键字}

echo ${A##*:}
将最右边的冒号以及前面的字符串去除

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

四、字符串去尾
不影响原变量

echo ${A%}
将最右边的冒号以及后面的字符串去除

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

echo ${A%%}
将最左边的冒号以及后面的字符串去除

《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

*五、批量修改当前文件夹下指定后缀对象的后缀
脚本思路:
使用字符串去尾可以很方便的批量修改文件夹下的文件名。
1、使用ls .txt获取所有指定后缀文件名
2、使用for i in 文件名集合
3、逐一去尾和增加新得后缀,例如.txt改为.doc

为了方便扩展,可以把需要修改的文件的后缀作为参数传入,更加智能。
《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

变量初始化:
变量有值则返回变量的值,无值则返回给与的初始值,有值回值,无值给值。
格式:echo ${变量:-关键词}

1、如果变量时没有值的,只是单纯的给了一个返回值,并不是给变量赋值了。
《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》
无值时可以返回一个值
《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》
有值时返回本身的值。

2、使用这个命令的特点就是可以稳定返回一个值,可用于接下来的赋值等使用,达到默认值的效果。
《Shell脚本,字符串处理,变量默认初始化,批量修改当前文件夹下指定后缀对象的后缀》

    原文作者:优秀的邓宗磊
    原文地址: https://blog.csdn.net/ganfanren00001/article/details/122741493
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞