# 字符串从右往左查找_浅谈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

ae87ccc67567e30293bb9d266226d5c5.png

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

//非贪婪匹配

//%:从右向左匹配。

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

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

odysee_od

补充:非贪婪

从右向左,删右留左

odysee_od y see

939b36f798d6f2cc4abcf8a020f56652.png

//贪婪匹配

//%:从右向左匹配。

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

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

od

补充:贪婪

从右向左,删右留左

od y see_odysee

30efeea7af5a8dafdd809d89dcc7873e.png

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

//非贪婪匹配

//#:从左向右匹配。

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

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

see_odysee

补充:非贪婪

从左向右,删左留右

od y see_odysee

1c15a408e9606c1aedf84a990f9a88cf.png

//贪婪匹配

//#:从左向右匹配。

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

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

see

补充:贪婪

从左向右,删左留右

odysee_od y see

eecc8932c37d174a0a288f49d7544696.png

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

//将o换为O

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

Odysee_odysee

补充:

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

0d8453362033efce03fd0a1b91fac9ca.png

//将o换为O

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

Odysee_Odysee

补充:

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

cda1ec2d5bfc0a355e4b6a55465b9615.png

总结:

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

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

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

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

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

感谢支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值