幸运蛋蛋pc开奖
这篇文章主要介绍了Linux Shell 截取字符串的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

shell中截取字符串的方法很多

${var#*/}
${var##*/}
${var%/*}
${var%%/*}
${var:start:len}
${var:start}
${var:0-start:len}
${var:0-start}
格式说明${string: start :length}从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。${string: start}从 string 字符串的左边第 start 个字符开始截取,直到最后。${string: 0-start :length}从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。${string: 0-start}从 string 字符串的右边第 start 个字符开始截取,直到最后。${string#*chars}从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。${string##*chars}从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。${string%*chars}从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。${string%%*chars}从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

下面用几个例子展示一下:

1) 获得字符串的长度

语法:

${#var}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

length=${#str}
echo "length : [${length}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
length : [61]

2) 使用 # 和 ## 获取尾部子字符串

2.1) # 最小限度从前面截取word

语法:

${parameter#word} 

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

#分割符为'/'
substr=${str#*/}
echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
substr : [/www.fengbohello.xin3e.com/blog/shell-truncating-string]

2.2) ## 最大限度从前面截取word

语法:

${parameter##word}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

#分割符为'/'
substr=${str##*/}
echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
substr : [shell-truncating-string]

3) 使用 % 和 %% 获取头部子字符串

3.1) % 最小限度从后面截取word

语法:

${parameter%word} 

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

substr=${str%/*}
echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
substr : [http://www.fengbohello.xin3e.com/blog]

3.2) %% 最大限度从后面截取word

语法:

${parameter%%word}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

substr=${str%%/*}
echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
substr : [http:]

4)使用 ${var:} 模式获取子字符串

4.1) 指定从左边第几个字符开?#23478;?#21450;子串中字符的个数

语法:

${var:start:len}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

#其中的 0 表示左边第一个字符开始,7 表示子字符的总个数。
substr=${str:0:7}
echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
substr : [http://]

4.2) 从左边第几个字符开?#23478;?#30452;到结束

语法:

${var:7}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

#其中的 7 表示左边第8个字符开始
substr=${str:7}
echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
substr : [www.fengbohello.xin3e.com/blog/shell-truncating-string]

4.3) 从右边第几个字符开?#23478;?#21450;字符的个数

语法:

${var:0-start:len}

示例代码:

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

#其中的 0-23 表示右边算起第23个字符开始,5 表示字符的个数
substr=${str:0-23:5}
echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
substr : [shell]

4.4) 从右边第几个字符开?#23478;?#30452;到结束

语法:

${var:0-start}

示例代码:

 

str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
echo "string : [${str}]"

#其中的 0-6 表示右边算起第6个字符开始
substr=${str:0-6}
echo "substr : [${substr}]"

执行结果:

string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
substr : [string]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

最新资讯
传WeWork有意聘用T-Mobile CEO出任新任CEO

传WeWork有意聘用T-Mo

消息人士透露,共享办公空间创业公司WeWork正在与T-Mobi
“双十一”空调市场混战 降价放量后或带来消费透支

“双十一”空调市场混

与国庆?#24179;?#21608;遭遇“寒流”不同,空调市场在双十一终于“
“双十一”攻守道:多场景应用 下沉市场发力

“双十一”攻守道:多场

双十一不能绝对代表中国消费,它更多的是利用了?#20309;?#30340;心
“双十一”金融机构众生相:争夺消费信贷庞大蛋糕

“双十一”金融机构众

相比信用卡机?#20849;?#37325;?#20013;?#25552;升支付安全性与便捷性,众多助
郭明錤:2019年Apple Watch出货量是2100-2300万部

郭明錤:2019年Apple Wa

2020年在苹果公司主要的硬件产品中,Apple Watch出货量
电商巨头鏖战“双十一”:下沉市场成为新战场

电商巨头鏖战“双十一

双十一不能绝对代表中国消费,它更多的是利用了?#20309;?#30340;心
最新文章
shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中

shell脚本将Oracle服

这篇文章主要介绍了shell脚本将Oracle服务器中数据定
详解Linux ln 命令

详解Linux ln 命令

Linux 中的文件分为 Hard Link 和 Symbolic Link 两种
Linux 查看端口的占?#20204;?#20917;并?#39029;?#24182;杀死占用进程的方法

Linux 查看端口的占用

这篇文章主要介绍了Linux 查看端口的占?#20204;?#20917;并?#39029;?#24182;
shell中长命令的换行处理方法示例

shell中长命令的换行

这篇文章主要给大家介绍了关于shell中长命令的换行处
详解在dotnet core实现类似crontab的定时任务

详解在dotnet core实

这篇文章主要介绍了在dotnet core实现类似crontab的定
Linux忘记root密码进入单用户模式切换运行级别切换用户

Linux忘记root密码进

这篇文章主要介绍了Linux忘记root密码进入单用户模式
幸运蛋蛋pc开奖 捕鱼世界官网 至尊国际网址 排列五复式投注图中奖 后宫肖是哪些生肖 神圣计划 牛牛牌游戏怎么算 时时走势图五星综合 重庆时时彩计划软件 pk10冠军万能6码公式 动物狂欢多人版