c语言字符串删除子串_Shell处理字符串常用技巧之分割、替换字符串

Shell处理字符串常用技巧之分割、替换字符串

在Shell编程中,经常要处理一些字符串变量。

下面给大家整理Shell处理字符串常用分割、替换字符串。

1、 ${#VALUE}:

计算VALUE字符串的字符数量。

2、 ${VALUE%.*}或${VALUE%%.*}:

删除VALUE字符串中以分隔符"."匹配的右边字符,保留左边字符。

3、 ${VALUE#*.}或${VALUE##*.}:

删除VALUE字符串中以分隔符"."匹配的左边字符,保留右边字符。

4、 ${VALUE/OLD/NEW}或${VALUE//OLD/NEW}:

用NEW子串替换VALUE字符串中匹配的OLD子串。

简单解释:

*:通配符,用于匹配字符串将被删除的子串。

.:分割符,可以为任意一个或多个字符。

%:从右向左匹配。

#:从左向右匹配。

/:表示替换。

% # /:非贪婪匹配,即匹配符合通配符的最短结果。

%% ## //:贪婪匹配,即匹配符合通配符的最长结果。

案例:

(1) 、${#VALUE}

[odysee@kingdom shellFiles]$ name=odysee_odysee

[odysee@kingdom shellFiles]$ echo ${#name}

13

78f29c6d9e4ec2b2776dfe74d5eb9a22.png

(2) 、${VALUE%.*} and ${VALUE%%.*}

//非贪婪匹配

//%:从右向左匹配。

//删除name字符串中以分隔符"y"匹配的右边字符,保留左边字符。

[odysee@kingdom shellFiles]$ echo ${name%y*}

odysee_od

补充:非贪婪

从右向左,删右留左

odysee_od y see

d6ccdb9c7345f95f2664b79962e766eb.png

//贪婪匹配

//%:从右向左匹配。

//删除name字符串中以分隔符"y"匹配的右边字符,保留左边字符。

[odysee@kingdom shellFiles]$ echo ${name%%y*}

od

补充:贪婪

从右向左,删右留左

od y see_odysee

c274cb748939ec58a1d2a6004988645e.png

(3) 、${VALUE#*.} and ${VALUE##*.}

//非贪婪匹配

//#:从左向右匹配。

//删除name字符串中以分隔符"y"匹配的左边字符,保留右边字符。

[odysee@kingdom shellFiles]$ echo ${name#*y}

see_odysee

补充:非贪婪

从左向右,删左留右

od y see_odysee

d35d03204dee82cf17f0e6784bc21b19.png

//贪婪匹配

//#:从左向右匹配。

//删除name字符串中以分隔符"y"匹配的左边字符,保留右边字符。

[odysee@kingdom shellFiles]$ echo ${name##*y}

see

补充:贪婪

从左向右,删左留右

odysee_od y see

19ce8db1e0c5efde7fe20c0958863198.png

(4) 、${VALUE/OLD/NEW} and ${VALUE//OLD/NEW}

//将o换为O

[odysee@kingdom shellFiles]$ echo ${name/o/O}

Odysee_odysee

补充:

因为是非贪婪模式,所以只替换了第一个o

b8180d6f476dca044aaa118cc2797727.png

//将o换为O

[odysee@kingdom shellFiles]$ echo ${name//o/O}

Odysee_Odysee

补充:

因为是贪婪模式,所以会替换所有o

e59591979a38b6ff51e7b6368b0796a6.png

总结:

关于以上的字符串操作,有点拗脑,不太容易记忆。

如果有什么好的记忆方式,望大家不吝赐教。

下一篇:Shell处理字符串常用技巧之截取子串

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值