shell“内置字符串处理”

结了shell中内置的字符串处理功能,包括> ${} # % :- :+ ? 等的使用
使用内置操作符处理字符串时,性能较好

赋值处理

stringword:string使word() s t r i n g − w o r d : 如 果 s t r i n g 没 设 定 , 则 使 用 w o r d 作 为 返 回 值 ( 空 值 和 非 空 值 不 做 处 理 ) {string:-word}: 如果string没设定或为空值,则使用word作为返回值(非空值时不做处理) 经常使用
string+word:string()使word() s t r i n g + w o r d : 如 果 s t r i n g 设 定 了 ( 空 值 或 非 空 值 ) , 则 使 用 w o r d 作 为 返 回 值 ( 没 有 设 定 不 做 处 理 ) {string:+word}: 如果string为非空值,则使用word作为返回值(没设定或空值时不做处理)
string=word:string使wordwordstring s t r i n g = w o r d : 如 果 s t r i n g 没 设 定 , 则 使 用 w o r d 作 为 返 回 值 , 同 时 将 w o r d 值 赋 值 给 s t r i n g {string:=word}: 如果string没设定或为空值,则使用word作为返回值,同时将word复制给string
string?word:stringwordSTDERR() s t r i n g ? w o r d : 如 果 s t r i n g 没 有 设 定 , 则 将 w o r d 输 出 到 S T D E R R ( 空 值 及 非 空 值 不 做 处 理 ) {string:?word}: 如果string没设定或为空值,则将word输出到STDERR(非空值不做处理)


获取字符串长度

${#string} (#号也称为为number sign )


字符串删除

设定string=’http://www.codeshold.me/2016/11/mac_skills.html

  1. ${string#*/} : 删掉第一个/及其左边的字符串,返回:/www.codeshold.me/2016/11/mac_skills.html
  2. ${string##*/}: 删掉最后一个/及其左边的字符串, 返回mac_skills.html
  3. ${string%/*} : 删掉最后一个/及其右边的字符串,返回http://www.codeshold.me/2016/11
  4. ${string%%/*}: 删除第一个/及其右边的字符串,返回http:
  5. 类似的有{string#*.}删掉第一个.及其左边的字符串, {string#*.}删掉第一个.及其左边的字符串, {string%.*}删掉最后一个.及其右边的字符串
记忆方法:
# 表示从左往右匹配(键盘上 # 在 $ 的左边)
% 表示从右往左匹配(键盘上 % 在 $ 的右边)
单一符号是最小匹配(非贪婪);两个符号是最大匹配(贪婪匹配)
${变量名#substring正则表达式}从字符串开头开始配备substring,删除匹配上的表达式
${变量名%substring正则表达式}从字符串结尾开始配备substring,删除匹配上的表达式

字符串截取

设定string=abcdefg,字符串的下标从0开始

  1. ${string:2} : 返回string中从第3个到结束的所有字符,即cdefg
  2. ${string:0} : 返回string中从第1个到结束的所有字符,即abcdefg
  3. ${string:0:5} : 返回string中从第1个开始的5个字符,即abcde
  4. ${string:0-1} : 返回string中最后一个字符, 即g
  5. ${string:0-3} : 返回string中从倒数第3个字符到结束的所有字符, 即efg
  6. ${string:0-3:2}: 返回string中从倒数第3个字符开始的2个字符,即ef
记忆方法:
${string:开始:长度}

字符串替换

设定string=/dir1/dir2/dir3

  1. ${string/dir/swf} : 将第一个dir替换成swf,返回/swf1/dir2/dir3
  2. ${string//dir/swf} : 将全部的dir替换成swf,返回/swf1/swf2/swf3
记忆方法:
两个符号//表示贪婪匹配(全部替换)
${变量/查找/替换值}查找中出现了”/”要加转义符”\/”表示

转自:http://www.ituring.com.cn/article/273517

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值