shell-02-字符串处理

一、字符串相关操作
1. 计算字符串的长度
语法说明
方法一${#string}
方法二expr length “$string”string有空格,则必须加双引号

举例:

# 计算字符串的长度
var1="Hello shell"
len=${#var1}
# 当定义的字符串有空格的时候,$string必须有双引号,否则会报错
len=`expr length "$var1"` 
2. 字符串其他操作
操作语法
获取字符索引的位置expr index $string $substring
计算子串长度expr match $string substr

举例:

# 获取字符索引的位置 如果是一个字符串,会把字符串全部分割成字符,然后同时去匹配定义的字符串
# 只要有一个匹配到了就返回对应的坐标
var1="my name is zhangsan"
# 会将name拆成 n a m e 分别取匹配my name is zhangsan
# n先匹配 my name is zhangsan中的m 未匹配
# a去匹配my name is zhangsan中的m 未匹配
# m去匹配my name is zhangsan中的m 匹配 返回1
idx=`expr index "$var1" name`

# 如果是字符,正常返回坐标,下面就是4
idx=`expr index "$var1" n`
var1="my name is zhangsan"
# 匹配需要从头还是匹配,从中间任何一个位置匹配返回都是0,也就是未匹配到
# 如果匹配的字符中间有空格,需要加上双引号
sub_len=`expr match "$var1" "my name"` 
3. 抽取子串
语法说明
方法一${string:position}从string中的position开始
方法二${stirng:position:length}从position开始,匹配长度为length
方法三${string: -position}从右边开始匹配 注意冒号和负号中间有空格
方法四${string:(position)}从右边开始匹配
方法五expr substr $string $position $length从position开始,匹配长度为length

举例:

var1="kafka hadop yarn mapreduce"
# expr的下标中1开始,这种下标从0开始 提取的字符应该是p yarn mapreduce
substr_1=${var1:10}
substr_2=${var1:10:5}
substr_3=${var1: -4}
substr_4=${var1:(-4)}
substr_4=${var1:-4:2}
# 从1开始计数,返回的字符串 op ya
substr_5=`expr substr "$var1" 10 5`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值