Shell字符串的替换
字符串的替换:
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 字符串操作(长度,查找,替换)详解
#################################################### 工作中字符串操作举例 #################################### ...
- linux shell 字符串操作(长度,查找,替换)详解 BASH
linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...
- oracle按特定字符截取字符串_妙用字符串的替换和截取让Shell脚本精准得到你心中的那个“她”...
目的 shell脚本中各种条件的判断,都需要对判定条件精准把控,而字符串在脚本中用的是最多的,怎样准确的获取你想要的字符串至关重要.本文详细介绍了shell脚本中妙用字符串的替换和截取,让你精准获得你 ...
- 截取字符串_妙用字符串的替换和截取让Shell脚本精准得到你心中的那个“她”...
目的 shell脚本中各种条件的判断,都需要对判定条件精准把控,而字符串在脚本中用的是最多的,怎样准确的获取你想要的字符串至关重要.本文详细介绍了shell脚本中妙用字符串的替换和截取,让你精准获得你 ...
- shell 字符串处理汇总(查找,替换等等)
http://blog.chinaunix.net/uid-20771623-id-3841521.html shell 字符串处理汇总(查找,替换等等) 字符串: 简称"串".有 ...
- linux shell 字符串 文件内容 大小写 转换 替换
目录 字符串大小写替换 文件内容大小写替换<原地置换> 文件内容大小写替换<需重定向> 字符串大小写替换 小写替换大写 [root@localhost ~]# echo &qu ...
- shell-7.shell 字符串的使用
shell-7.shell 字符串的使用 1.查看字符串的长度 ${#var} 可计算出变量值的长度: [root@10-222 ~]# var='yuanji' [root@10-222 ~]# e ...
- shell字符串截取总结
shell中截取字符串的方法有很多中,本人对其中几种常用的进行整理总结. 0x01.grep 在文件中搜寻字符串匹配的行并输出 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式 ...
- linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法
linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法 变量替换和变量默认值设置是紧密相关的,至少从概念出发是如此. 参数扩张是将类似于变量 ...
- Linux Shell脚本入门教程系列之(五)Shell字符串
本文是Linux Shell脚本系列教程的第(五)篇,更多shell教程请看:Linux Shell脚本系列教程 字符串是Shell编程中最常用最有用的数据类型,继上一篇之后,今天,Linux大学网就 ...
最新文章
- torch量化的流程
- python 语言-python是一门什么样的语言?
- 在WPF中进行碰撞检测
- 使用 Packer、Ansible 和 Terraform 构建不可变的基础设施
- HTML5 飞鸽传书web service都发布到交互服务器
- Linux ubuntu 装openCV,Ubuntu Linux下安装OpenCV2.4.1所需包
- 五分钟没有操作自动退出_消防设施操作员 精选练习题10.31
- laravel配置加解密
- egret农场游戏源码
- RTKLIB_E.4GNSS卫星星历表和时钟
- 配电网自动化课程复习总结
- oracle英文日期转换为中文,excel中文日期与英文日期如何转换
- Android 锁屏后Socket长连接踩坑总结
- 权限控制-@Secured注解
- 深度学习AI美颜系列---人像审美
- 筱筱看博客(git 冲突解决)
- Android Studio 作业 BMI 计算器
- 在hive如何创建数据库哦
- 【Django】Django配置文件和设计模式详解
- 单片机学习 10-步进电机