shell字符串处理
admin
2023-03-01 09:42:18
0

字符串切片操作

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位

基于模式截取子字符串
#自左向右

  1. ${var#word}:# 号自左向右,查找var变量所存储的字符串中,将第一次出现的匹配word的字符串删除。*可以理解为匹配任意长度任意字符
  2. ${var##word*}:## 开启贪婪模式,自左向右依次匹配,将并所有匹配的字符串都删除,留下未匹配的部分。

%自右向左

  1. ${var%word}:%号自右向左,查找var变量所存储的字符串中,将第一次出现的匹配word的字符串删除。*可以理解为匹配任意长度任意字符
  2. ${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为行尾所匹配 到的字符串

字符大小写转换

  1. ${var^^}:把var中的所有小写字母转换为大写
  2. ${var,,}:把var中的所有大写字母转换为小写

重点记忆

  1. 索引编号:从左到右元素字符串起始偏移量编号为0;从右到从元素字符串起始偏移量编号为-1
  2. offset:正数时代表从左向右截取,为负数时代表从右向左截取
  3. number:为正数时代表截取长度,为负数则代表结束位置,当number为代表结束位置时截取内容不包括第m位

相关内容

热门资讯

中材科技申请风电叶片外补强辅助... 国家知识产权局信息显示,中材科技(伊吾)风电叶片有限公司申请一项名为“风电叶片外补强辅助固化装置”的...
为人工智能治理提供重要公共产品 图为2026世界人工智能大会暨人工智能全球治理高级别会议举办期间,在世博展览馆灵心巧手展位,参观者观...
泽连斯基称俄对乌多地发动大规模... 当地时间25日,乌克兰总统泽连斯基通报称,俄军于当日凌晨对乌克兰多地发动大规模空袭,使用2枚导弹、近...
不怕没水!武汉科学家找到水稻身... 干旱来了,水稻启动"抗旱模式",可一启动就长不大、结得少——这是困扰育种界几十年的老难题。7月23日...
多款手机涨价超1000元,大存... 今年暑期消费旺季,国内智能手机市场迎来一轮显著的价格上调。第一财经记者走访深圳多家品牌门店发现,以v...
SpaceX上市后星舰首飞:首... 界面新闻实习记者 | 李响 在经历多次波折后,SpaceX公司的星舰(Starship)终于完成了...
博世洗衣机强制解锁 博世洗衣机强制解锁的方法可能因型号和具体情况而异。以下是一些常见的方法:1. 按住电源键:有些博世洗...
美的电热水器不能出水了该怎么处... 美的电热水器不能出水了该怎么处理?1、管路堵塞,管路因水垢、杂物或冻堵等原因堵塞,热水自然就不能出水...
2026世界杯:AI改变了足球... 文 | 硅谷101 历时39天,美加墨世界杯终于落下了帷幕,西班牙最终夺得冠军,时隔16年再次捧起...
博世洗衣机不能启动 博世洗衣机不能启动可能有多种原因,以下是一些常见的解决方法:1. 检查电源:确保洗衣机已正确连接到电...