shell 字符串处理

前言:大家都知道不管是php,c,c++还是java这些高级语言,都会有一连串处理字符串的函数,比如c有strcpy,strlen,strstr等,可是我们在使用shell的时候,就很难发现有这杨多的字符串函数,这本身也源于shell就是一本调用各种可执行程序来处理问题的一门语言。以前在写shell的时候,操作字符串的时候我都会用cut或者是wc 来处理一些字符,比如我要计算字符串的长度,echo "bruceyang" | wc -c,这样所得的值减去1就是字符串长度,我要提取一些字符串用cut 等,但是shell 字符串变量本身也自己带了字符串的处理功能,下面我将来分享自己的总结:


${#var}

Var变量的字符长度

${var:position}

从位置$position开始提取字符

${var:position:length}

从位置$position开始提取$length个字符

${var#sub}

从变量$string的开头, 删除最短匹配$substring的子串

${var##sub}

从变量$string的开头, 删除最长匹配$substring的子串

${var%sub}

从变量$string的结尾, 删除最短匹配$substring的子串

${var%%sub}

从变量$string的结尾, 删除最长匹配$substring的子串

${var/sub/relace}

使用$replacement, 来代替第一个匹配的$substring

${var/#sub/relace}

如果$string以$substring开始, 那么就用$replacement来代替匹配到的$substring

${var/%sub/relace}

如果$string以$substring结束, 那么就用$replacement来代替匹配到的$substring


例子:

[root@labcd ~]# a=bruceyangbruceyang
[root@labcd ~]# echo ${#a}
18
[root@labcd ~]# echo ${a:1}
ruceyangbruceyang
[root@labcd ~]# echo ${a:1:3}
ruc
[root@labcd ~]# echo ${a#bruce}
yangbruceyang

[root@labcd ~]# echo ${a%yang}
bruceyangbruce



剩下的就等各位自行尝试吧奋斗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值