Linux 字符串处理
字符串处理方式
1、计算字符串长度,有两种方式 $ ${#string} $ expr length "$string"? ?// 如果 string 里面包含空格,则 $string 加上双引号,建议一直加上 注意:mac没有 expr命令,xshell登陆 linux服务器可以执行 expr命令 例1:? $?var="java python golang kafka" $ len=${#var} $ echo len 打印结果:24 ? $ len=`expr length "$var"`? // 这里要用反引号 ` ` 。 $ echo $len 打印结果:24? 2、获取子串在字符串中的索引位置(本质上是 将子串拆分成很多单个的字符,然后看哪个字符最先在字符串中出现,则返回这个字符的索引位置) $ expr index $string $substring 例2: $?var="quickstart is a app" $ ind=`expr index "$var" start` $ echo $ind 打印结果:6? ? // 下标从 1 开始数 ? $?ind=`expr index "$var" uniq` $ echo $ind 打印结果:1? ? ?// ‘q‘ 这个字符最先出现在字符串中,并且位置是 1 ? 3、获取子串的长度 $ expr match $string substr 例3: $?var="quickstart is a app" $?sub_len=`expr match "$var" app`? ???// 需要从头匹配,并且匹配成功,否则返回 0 $?echo $sub_len? ? 打印结果:0 ? $ sub_len=`expr match "$var" quic`? ?// 正常匹配 $?echo $sub_len 打印结果:4 ? $ sub_len=`expr match "$var" qui.*`? ? ? // 获取整个字符串的长度 $?echo $sub_len 打印结果:19 ? $ sub_len=`expr match "$var" quik`? ?// 匹配失败 $?echo $sub_len 打印结果:0 ? 4、抽取子串,五种方式 $ ${string:position}? ?// 从 string 的 position 开始 $ ${string:position:length}? ?// 从 string 的 position 开始,取 length 个长度的字符 $ ${string: -position}? ? // 从右边开始匹配,注意":" 和 "-" 之间有空格 $ ${string:(position)}? ? // 从左边开始匹配 $ expr substr $string $position $length? // 从 position 开始,匹配长度为length 例4: $ var="java python golang kafka" $ substr1=${var:3}? ? // 下标从 0 开始,下标为 3 的字符刚好是 a $ echo $substr1 打印结果:a python golang kafka ? $ substr2=${var:3:5} $ echo $substr2 打印结果:a pyt ? $ substr3=${var: -5}? ? // 最后一个字符为 -1。? 等价于:substr3=${var:(-5)}? $ echo $substr3 打印结果:kafka ? $ substr3_1=${var: -5:2}? ? ?// 扩展一个 $ echo $substr3_1 打印结果:ka ? $ substr4=${var:(5)}? ? // 从左边第5个开始取 $ echo $substr4 打印结果:python golang kafka? ? $ substr5=`expr substr "$var" 10 5`? ? ?// expr 下标从 1 开始,然后从第 10 个开始取 $?echo $substr5 打印结果:on go ? 注意:expr 方式下标从 1 开始; ${ }方式下标从 0 开始 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |