三、shell变量子串
2023-03-14 22:46:28 时间
1.子串的语法和功能
子串语法 | 功能说明 |
---|---|
${#string} | 变量最前面加井号可以返回变量的长度 |
${string:n} | 变量后面加冒号并写数字,从该位置后提取字符串 |
${string:n:m} | 从n位置提取长度是m的字符串 |
${string#word} | 从开头开始删除最短匹配word子串的内容 |
${string##word} | 从开头开始删除最长匹配word子串的内容 |
${string%word} | 从结尾开始删除最短匹配word子串的内容 |
${string%%word} | 从结尾开始删除最长匹配word子串的内容 |
${string/A/B} | 用B字符串替代第一个匹配的A子串 |
${string//A/B} | 用B字符串替代所有匹配的A子串 |
${string/#A/B} | 如果源字符串前缀匹配A,则用B字符串替代A |
${string/%A/B} | 如果源字符串后缀匹配A,则用B字符串替代A |
说明:子串可以是一个正则表达式。
2.案例
1)提取字符串和计算长度案例
- cat t1.sh
OLD=abcABC123ABCabc
echo ${#OLD}
echo ${OLD:6}
echo ${OLD:6:4}
- sh t1.sh
15 #计算长度,合计15个字符
123ABCabc #从第6个字符串开始提取
123A #从第6个字符串开始,提取4个字符
2)匹配子串删除字符串案例
- cat /server/scripts/t1.sh
OLD=abcABC123ABCabc
echo ${OLD#A*C}
echo ${OLD#a*C}
echo ${OLD##a*C}
echo ${OLD%A*c}
echo ${OLD%%A*c}
- sh /server/scripts/t1.sh
abcABC123ABCabc #未能匹配到A开头的字符,原样输出
123ABCabc #从前最短匹配成功,删除abcABC
abc #从前最长匹配成功,删除abcABC123ABC
abcABC123 #从后最短匹配成功,删除ABCabc
abc #从后最长匹配成功,删除ABC123ABCabc
3)匹配替换字符串案例
- cat /server/scripts/t1.sh
OLD=abcABC123ABCabc
echo ${OLD/ABC/MMM}
echo ${OLD//ABC/MMM}
echo ${OLD/#abc/MMM}
echo ${OLD/%abc/MMM}
- sh /server/scripts/t1.sh
abcMMM123ABCabc #将匹配到的第一个ABC替换为MMM
abcMMM123MMMabc #将匹配到的所有ABC替换为MMM
MMMABC123ABCabc #将前缀匹配到的abc替换为MMM
abcABC123ABCMMM #将后缀匹配到的abc替换为MMM
相关文章
- 借助 GPU 和容器支持,在 AWS RoboMaker 中运行任何高保真模拟
- 在 AWS Cloud9 中构建和模拟机器人应用程序
- 快速java_Java快速教程
- 为 AWS RoboMaker 准备 ROS 应用程序和模拟容器
- 使用 AWS IoT Greengrass 2.0 和 Docker 部署和管理 ROS 机器人
- 无需管理任何基础设施即可在云端构建和模拟 Mini Pupper 机器人
- 基于 Amazon OpenSearch 的 Apache Solr 的迁移方案设计及实现
- DirectConnect 与 VPN 主备高可用组网
- 基于Amazon DeepRacer Opensource实现自定义车道线识别任务
- 如何进行威胁模型分析
- 使用Amazon SNS & SQS 实现 Amazon CloudWatch 持续报警
- 基于Amazon IoT TwinMaker的工厂数字孪生解决方案
- 快速迁移自建Kubernetes资源上云及EKS资源备份恢复–基础篇
- 从Amazon Connect全球云呼叫中心服务SSO构建流程
- 针对常见物联网安全事件的持续检测和监控解决方案
- Kabbage 如何通过 Amazon Textract 改善 PPP 贷款体验
- AWS 一周回顾 – 2022 年 12 月 19 日
- 借助 Cloud Foundations 实现 Terraform 基础设施即代码的自动化管理及其持续集成和持续部署
- 如何从IDC 使用临时安全凭证访问 Amazon Secrets Manager-将 Role的使用延伸到 IDC
- 基于Amazon CloudWatch 和Grafana 的云上资源监控与报警解决方案