字符串的替换:
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字符串的替换相关推荐

  1. shell 字符串操作(长度,查找,替换)详解

    #################################################### 工作中字符串操作举例 #################################### ...

  2. linux shell 字符串操作(长度,查找,替换)详解 BASH

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

  3. oracle按特定字符截取字符串_妙用字符串的替换和截取让Shell脚本精准得到你心中的那个“她”...

    目的 shell脚本中各种条件的判断,都需要对判定条件精准把控,而字符串在脚本中用的是最多的,怎样准确的获取你想要的字符串至关重要.本文详细介绍了shell脚本中妙用字符串的替换和截取,让你精准获得你 ...

  4. 截取字符串_妙用字符串的替换和截取让Shell脚本精准得到你心中的那个“她”...

    目的 shell脚本中各种条件的判断,都需要对判定条件精准把控,而字符串在脚本中用的是最多的,怎样准确的获取你想要的字符串至关重要.本文详细介绍了shell脚本中妙用字符串的替换和截取,让你精准获得你 ...

  5. shell 字符串处理汇总(查找,替换等等)

    http://blog.chinaunix.net/uid-20771623-id-3841521.html shell 字符串处理汇总(查找,替换等等) 字符串: 简称"串".有 ...

  6. linux shell 字符串 文件内容 大小写 转换 替换

    目录 字符串大小写替换 文件内容大小写替换<原地置换> 文件内容大小写替换<需重定向> 字符串大小写替换 小写替换大写 [root@localhost ~]# echo &qu ...

  7. ​shell-7.shell 字符串的使用

    shell-7.shell 字符串的使用 1.查看字符串的长度 ${#var} 可计算出变量值的长度: [root@10-222 ~]# var='yuanji' [root@10-222 ~]# e ...

  8. shell字符串截取总结

    shell中截取字符串的方法有很多中,本人对其中几种常用的进行整理总结. 0x01.grep 在文件中搜寻字符串匹配的行并输出 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式 ...

  9. linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法

    linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法 变量替换和变量默认值设置是紧密相关的,至少从概念出发是如此. 参数扩张是将类似于变量 ...

  10. Linux Shell脚本入门教程系列之(五)Shell字符串

    本文是Linux Shell脚本系列教程的第(五)篇,更多shell教程请看:Linux Shell脚本系列教程 字符串是Shell编程中最常用最有用的数据类型,继上一篇之后,今天,Linux大学网就 ...

最新文章

  1. torch量化的流程
  2. python 语言-python是一门什么样的语言?
  3. 在WPF中进行碰撞检测
  4. 使用 Packer、Ansible 和 Terraform 构建不可变的基础设施
  5. HTML5 飞鸽传书web service都发布到交互服务器
  6. Linux ubuntu 装openCV,Ubuntu Linux下安装OpenCV2.4.1所需包
  7. 五分钟没有操作自动退出_消防设施操作员 精选练习题10.31
  8. laravel配置加解密
  9. egret农场游戏源码
  10. RTKLIB_E.4GNSS卫星星历表和时钟
  11. 配电网自动化课程复习总结
  12. oracle英文日期转换为中文,excel中文日期与英文日期如何转换
  13. Android 锁屏后Socket长连接踩坑总结
  14. 权限控制-@Secured注解
  15. 深度学习AI美颜系列---人像审美
  16. 筱筱看博客(git 冲突解决)
  17. Android Studio 作业 BMI 计算器
  18. 在hive如何创建数据库哦
  19. 【Django】Django配置文件和设计模式详解
  20. 单片机学习 10-步进电机

热门文章

  1. libtorrent源码分析(三)BT下载相关知识总结
  2. win10系统卡顿怎么解决?从这几方面入手准没错
  3. 适合中小企业的协同办公软件一览
  4. Office基础操作:如何去掉Word参考文献编号后的空格
  5. 教你用Axure绘制三级菜单
  6. MSI GT60 16F4升级、超频、解锁功耗限制的研究
  7. 能上天的代码? NASA 火星无人机飞行控制系统开源了
  8. win10环境下安装AutoCAD2006+南方CASS7.1 【家庭中文版和非家庭中文版】
  9. CSS display属性 – 不显示、显示表格、内联块等
  10. 腾讯云短信设置流程图文介绍