shell字符串处理
字符串切片操作
shell字符串切片操作与数据组元素字符切片操作基本相同,在shell中处理字符串要注意以下几点:
1. shell中的字符串处理操作与Python的处理机制很相似,Python中的切片操作支持步长切片和逆序显示。 2. 汉字占一个字符 2. 字符串切片操作同样基于索引机制 3. 索引编号:从左到右元素字符串起始偏移量编号为0;从右到从元素字符串起始偏移量编号为-1 4. 查询字符串长度 ${#var}
切片语法:${var:offset}、 ${var:offset:number}
同样先解释一下offset、number参数
offset:指定截取字符串的起始位置偏移量
number:指定截取元素字符串的长度或结束位置
1. offset:正数时代表从左向右截取,为负数时代表从右向左截取。 2. number:为正数时代表截取长度,为负数则代表结束位置,当number为代表结束位置时截取内容不包括第m位
基于模式截取子字符串
#自左向右
- ${var#word}:# 号自左向右,查找var变量所存储的字符串中,将第一次出现的匹配word的字符串删除。*可以理解为匹配任意长度任意字符
- ${var##word*}:## 开启贪婪模式,自左向右依次匹配,将并所有匹配的字符串都删除,留下未匹配的部分。
%自右向左
- ${var%word}:%号自右向左,查找var变量所存储的字符串中,将第一次出现的匹配word的字符串删除。*可以理解为匹配任意长度任意字符
- ${var%%word}:%%开启贪婪模式,自右向左依次匹配,将并所有匹配的字符串都删除,留下未匹配的部分。
基于模式匹配查找替换字符
1. ${var/pattern/substr} 基于模式自左而右匹配变量中存储的字符串,并将第1个匹配到的字符串替换为substr。 2. ${var//pattern/substr} 基于模式自左而右匹配变量中存储的字符串,并替换所有匹配到的字符串为substr 3. ${var/#pattern/substr} 将行首匹配到的字符串替换为substr 4. ${var/%pattern/substr} 将行尾匹配到的字符串替换为substr
基于模式匹配删除子字符串
1. ${var/pattern}:删除var表示的字符串中第一次被pattern匹配到的字符串 2. ${var//pattern}:删除var表示的字符串中所有被pattern匹配到的字符串 3. ${var/#pattern}:删除var表示的字符串中所有以pattern为行首匹配到的 字符串 4. ${var/%pattern}:删除var所表示的字符串中所有以pattern为行尾所匹配 到的字符串
字符大小写转换
- ${var^^}:把var中的所有小写字母转换为大写
- ${var,,}:把var中的所有大写字母转换为小写
重点记忆
- 索引编号:从左到右元素字符串起始偏移量编号为0;从右到从元素字符串起始偏移量编号为-1
- offset:正数时代表从左向右截取,为负数时代表从右向左截取
- number:为正数时代表截取长度,为负数则代表结束位置,当number为代表结束位置时截取内容不包括第m位
相关推荐
xiaonamylove 2020-10-16
coolboywcy 2019-06-25
xiaobater 2020-06-09
gcong 2020-05-04
xiaobater 2020-04-14
myccc 2013-08-20
不羈 2010-12-18
zhendeshifeng 2019-06-28
qingshuoyisheng 2019-06-10
TuxedoLinux 2012-09-06
RobinLiew 2012-09-01
以梦为马不负韶华 2012-01-12
rechanel 2011-12-14
JavaLab 2011-11-01
whats 2011-10-26
Julyth 2011-09-20
zhendeshifeng 2010-07-29