内置函数介绍
除了使用Sed操作字符串之外,还可以使用内置函数来操作字符串
- exper: 除了可以用来操作字符串,还可以用来做数据运算
- ${}符号: 主要是用来操作字符串
字符串长度
1 | string=abcABC123ABCabc |
字符串删减
字符串删减可以直接使用内置函数
${string#$substring}
需要考虑两个维度
- 从start/end哪个进行删除,#代表start,%代表end
- 删除最长/最短匹配,#、%代表最短, ## %%代表最长
需要注意其中substring使用的不是正则表达式,而是字符串匹配
1 | string=abcABC123ABCabc |
字符串替换
内置函数还提供了类似sed的替换功能,也要考虑两点
- 单次/全部替换
- 从前开始替换还是从后开始替换
${string/string/substring}
1 | string=abcABC123ABCabc |
字符串提取
使用表达式 ${string:position:offset} 进行提取,注意两点
- offset可以省略,代表提取到末尾
- position为负时需要加括号或者空格,进行反向提取
1 | string=abcABC123ABCabc |
第二种方式是使用expr进行提取,可以用postion也可以用正则来
- expr substr $string $postion $length
- expr match $string “($regex)“
注意当使用match的时候,需要满足三点:加双引号、转义小括号、使用正则,其中如果使用另外一种表达, 则代表从end of string 进行提取,一般是右边
**expr match $string “.*()“ **
也可以使用分号来代替 match 命令 expr $string : “($regex)“
1 | string=abcABC123ABCabc |