专栏首页大数据技术栈shell 字符串操作 ${} 的截取,删除,和 替换

shell 字符串操作 ${} 的截取,删除,和 替换

字符串截取

  • 字符长度 [user@host dir]$ str=123abc123 [user@host dir]$ echo ${#str} 9
  • 从左边截取 ${string:position:length} :从字符串 string 的 position 位置截取 length 个字符串 [user@host dir]$ str=123abc123 [user@host dir]$ echo ${str:3:3} abc [user@host dir]$ echo "${str:0:${#str}-3}" 123abc
  • 从右边截取 ${string:空格 -lenth} 截取字符串 string 的后 lenth 个位置 #请注意 -4 前面的 空格符号 [user@host dir]$ str=123abc123 [user@host dir]$ echo ${str: -4} c123 #空格可以看成是 0 [user@host dir]$ echo ${str:0-4} c123 #1-4就相当于 空格-3 或者说 0-3 [user@host dir]$ echo ${str:1-4} 123

匹配删除

  • 从左匹配删除 # 和 ## ${string#mact_string}:从 string 左边开始匹配,删除匹配到的字符,尽可能少删除字符 ${string##mact_string}:从 string 左边开始匹配,删除匹配到的字符,尽可能多删除字符 其中 mact_string 可以是一个正则表达式 [user@host dir]$ str=123abc123 [user@host dir]$ echo "${str##*1}" 23 [user@host dir]$ echo "${str#*1}" 23abc123 [user@host dir]$ echo "${str##1}" 23abc123 [user@host dir]$ echo "${str#1}" 23abc123
  • 从右匹配删除 % 和 %% [user@host dir]$ str=123abc123 [user@host dir]$ echo ${str%%2*3} 1 [user@host dir]$ echo ${str%2*3} 123abc1

匹配替换

  • 普通替换 ${string/match_string/replace_string}:将 string 中第一个 match_string 替换成 replace_string ${string//match_string/replace_string}:将 string 中的 match_string 全部替换成 replace_string [user@host dir]$ str=123abc123 [user@host dir]$ echo "${str/123/r}" rabc123 [user@host dir]$ echo "${str//123/r}" rabcr
  • 前后缀替换 ${string/#match_string/replace_string}:将 string 中第一个 match_string 替换成 replace_string ${string/%match_string/replace_string}:将 string 中的 match_string 全部替换成 replace_string [user@host dir]$ str=123abc123 [user@host dir]$ echo "${str/#123/r}" rabc123 [user@host dir]$ echo "${str/%123/r}" 123abcr
  • 正则匹配 match_string 可以是一个正则表达式 [user@host dir]$ str=123abc123 [user@host dir]$ echo "${str/3*1/r}" 12r23

如有错误 望指正噢!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spark系列——Spark On Yarn 资源申请流程

    到这里我们也基本讲明白了 Yarn-Client 模式的资源申请了, 但是说的比较浅,没有涉及到很多细节, 说来也比较惭愧,Spark 的 Standalo...

    solve
  • Hive 修复分区 MSCK REPAIR TABLE

    MSCK REPAIR TABLE命令主要是用来: 解决通过hdfs dfs -put或者hdfs api写入hive分区表的数据在hive中无法被查询到的问...

    solve
  • 架构杂记

    根据目前的情况看起来,国内普遍对于flink比较看好, 从实际情况来看,flink也是以后的发展方向, 但是目前Spark的活跃程度远高于Flink, 很...

    solve
  • 【Golang 语言社区】 剧透社区APP 问答功能模块设计思路及实现

    社区APP问答模块,设计思想:主要为了满足用户在发表疑问及遇到的问题的时候可以发表。 1 发...

    李海彬
  • yarn详解

    其中,在master node上运行ResourceManager。 每个datanode上运行一个NodeManager。 并把该dataNode上的所有...

    平凡的学生族
  • python 计算简单移动平均

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    多凡
  • PHP网络编程之epoll开启篇

    这个公众号自从去年6月份到现在已经半年了,将近80篇的原创大概换来了550元的广告费。这不是我一个人的钱(主要是大家浏览量带来的支持),再加上我们最近遇到的事情...

    老李秀
  • 自定义Spark Partitioner提升es-hadoop Bulk效率

    之前写过一篇文章,如何提高ElasticSearch 索引速度。除了对ES本身的优化以外,我现在大体思路是尽量将逻辑外移到Spark上,Spark的分布式计算能...

    用户2936994
  • Nginx安装后第一个要改的配置…

    在绿盟的报告中,可以看到,头部攻击是指,http host header头中的HTTP_HOST不可靠,所以,如果后端开发代码中,通过类似PHP中的_SERVE...

    李俊鹏
  • 盘点JavaScript中数组遍历的全部方式(上篇)

    JavaScript想必大家都不陌生了,其中的字符串和数组大家经常都会用到,今天就让我们来说说这里面的数组对象的遍历吧,因为遍历经常使用的缘故,所以小编带着大家...

    前端进阶者

扫码关注云+社区

领取腾讯云代金券