Shell字符串的替换
2020-07-26 15:40
661 查看
字符串的替换:
1)只替换第1个子串
格式:${变量名/old/new}
还以前面的phone变量为例,确认原始值:
1. [root@dyy ~]# echo $phone 2. 13788768897
将字符串中的第1个8替换为X:
1. [root@dyy ~]# echo ${phone/8/X} 2. 137X8768897
2)替换全部子串
格式:${变量名//old/new}
将phone字符串中的所有8都替换为X:
1. [root@dyy ~]# echo ${phone//8/X} 2. 137XX76XX97
字符串的匹配删除:
以处理系统默认的账户信息为例,定义变量A:
1. [root@dyy ~]# A=`head -1 /etc/passwd` 2. [root@dyy ~]# echo $A 3. root:x:0:0:root:/root:/bin/bash
1)从左向右,最短匹配删除
格式:${变量名#关键词}
删除从左侧第1个字符到最近的关键词“:”的部分, 作通配符理解:
1. [root@dyy ~]# echo ${A#*:} 2. x:0:0:root:/root:/bin/bash
2)从左向右,最长匹配删除
格式:${变量名##*关键词}
删除从左侧第1个字符到最远的关键词“:”的部分:
1. [root@dyy ~]# echo $A //确认变量A的值 2. root:x:0:0:root:/root:/bin/bash 3. [root@dyy ~]# echo ${A##*:} 4. /bin/bash
3)从右向左,最短匹配删除
格式:${变量名%关键词*}
删除从右侧最后1个字符到往左最近的关键词“:”的部分,* 做通配符理解:
1. [root@dyy ~]# echo ${A%:*} 2. root:x:0:0:root:/root
4)从右向左,最长匹配删除
格式:${变量名%%关键词*}
删除从右侧最后1个字符到往左最远的关键词“:”的部分:
1. [root@dyy ~]# echo ${A%%:*} 2. root
编写renfilex.sh脚本:
创建一个测试用的测试文件
1. [root@dyy ~]# mkdir rendir 2. [root@dyy ~]# cd rendir 3. [root@dyy rendir]# touch {a,b,c,d,e,f,g,h,i}.doc 4. [root@dyy rendir]# ls 5. a.doc b.doc c.doc d.doc e.doc f.doc g.doc h.doc i.doc
1)批量修改文件扩展名的脚本
脚本用途为:批量修改当前目录下的文件扩展名,将.doc改为.txt。
脚本内容参考如下:
1. [root@dyy rendir]# vim renfile.sh 2. #!/bin/bash 3. for i in `ls *.doc` #注意这里有反引号 4. do 5. mv $i ${i%.*}.txt 6. done 7. [root@dyy ~]# chmod +x renfile.sh
测试脚本:
1. [root@dyy rendir]# ./renfile.sh 2. [root@dyy rendir]# ls 3. a.txt b.txt c.txt d.txt e.txt f.txt g.txt h.txt i.txt
2)改进版脚本(批量修改扩展名)
通过位置变量 $1、$2提供更灵活的脚本,改进的脚本编写参考如下:
1. [root@dyy rendir]# vim ./renfile.sh 2. #!/bin/bash 3. #version:2 4. for i in `ls *.$1` 5. do 6. mv $i ${i%.*}.$2 7. done
3)验证、测试改进后的脚本
将 *.doc文件的扩展名改为.txt:
1. [root@dyy rendir]# ./renfile.sh txt doc
将 *.doc文件的扩展名改为.mp4:
1. [root@dyy rendir]# ./renfile.sh doc mp4
相关文章推荐
- shell 脚本替换文件中某个字符串
- shell 字符串处理汇总(查找,替换等等)
- Shell 小技巧的问题 mysql -e ,字符串替换telnet命令检测
- shell脚本中使用tr命令实现对字符串删除、替换和赋值
- shell 脚本替换文件中某个字符串
- 使用shell命令sed将指定目录下的所有文件中指定的字符串替换成指定的字符串
- shell-字符串的提取和替换
- shell 字符串操作(长度,查找,替换)详解
- SHELL脚本替换包含指定字符串的行
- shell 字符串操作(长度,查找,替换)详解
- shell 脚本替换文件中某个字符串
- Shell中字符串的切割、拼接、比较、替换
- shell 批量替换多个文件中字符串
- shell字符串变量的特异功能:字符串的替换(${str/源模式/目标模式},${str//源模式/目标模式})、截断
- 「Shell」macOS系统下替换文件中的字符串
- 转载:shell 字符串处理汇总(查找,替换等等)
- shell 字符串操作(长度,查找,替换)详解
- shell 批量替换多个文件中字符串
- shell 字符串操作(长度,查找,替换)详解
- shell脚本:以一定规律替换某个目录下某些文件中的某个字符串