-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:46651
- shell命令
-
- 文章:(42)篇
- 阅读:154545
- Git教程
-
- 文章:(36)篇
- 阅读:235232
- leetCode刷题
-
- 文章:(76)篇
- 阅读:132433
-
shell中字符串的相关操作详解2018-07-01 16:03 阅读(4057) 评论(0)
一、获取字符串的长度
假设变量如下:
#! /bin/bash str1="just for test"
获取长度:
echo "长度:${#str1}" #方法一 echo "长度:`expr length "$str1"`" #方法二
测试如下:
二、字符串的提取
格式如下:
${str:start:len}
从字符串str中的start位置开始,提取len个长度组成的字符串,如果len为空,则提取从start位置开始的所有字符组成的字符串。比如:
str1="just for test" echo ${str1:2} #从第二个字符开始的所有字符 echo ${str1:5:3} #从第5个字符开始,共提取3个字符
三、删除特定字符串
假设,现在有如下两个字符串:
str="test0 test01 test02 test003" str1="test0*"
表达式 含义 案例 ${str#$str2} 从str的开头开始,删除最短匹配str2的子串 输出0 test01 test02 test003 ${str##$str2} 从str的开头开始,删除最长匹配str2的子串 输出为空,因为匹配*匹配所有,故删除整个字符串 ${str%$str2} 从str的结尾开始,删除最短匹配str2的子串 输出test0 test01 test02 ${str%%$str2} 从str的结尾开始,删除最长匹配str2的子串 输出为空,因为匹配*匹配所有,故删除整个字符串 四、字符串替换
假设,现在有如下两个字符串:
str="test0 test01 test02 test003" str2="test"
表达式 含义 案例 ${str/$str2/测试} 从str的开头开始,替换第一次匹配的$str2为测试 输出测试0 test01 test02 test003 ${str//$str2/测试} 替换所有匹配的$str2为测试 输出测试0 测试01 测试02 测试003