shell编程(一):字符串处理

变量替换

从头开始匹配删除字符串中内容

var="I love you, Dou you love me?"
var1=${var#*ov} # 非贪婪模式
>>> e you, Dou you love me?

var2=${var##*ov} # 贪婪模式
>>>e me?

从变量尾部尽心规则匹配并删除

var="I love you, Dou you love me?"
var3=${var%*ov}
>>>I love you, Dou you l

var4=${var%%*ov} # 贪婪模式
>>>I l

替换变量中字符

var="/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/hadoopuser/bin:/usr/local/bin:/home/hadoopuser/.local/bin:/home/hadoopuser/bin"

var5=${var/bin/BIN} # bin替换成BIN 只替换一个
var6=${vat//bin/BIN} # 全部替换

字符串处理

计算字符串长度
方法一

${#string}

方法二:如果string有空格,必须加双引号

expr length "$string"

例子:

var="hello world"
len=${#var}
>>>len=11

len=`expr length "$var"`  # 必须要写双引号

获取子串在字符串中的索引位置

expr index $string $substring

例子:

var="hello word"
ind=`expr index "$var" word`
>>>ind=5  # 因为index函数是将word 切成字符去匹配 所以先找到了 o 所以返回的是5

获取子串长度

expr match "$string" substr

例子:

var="hello word"
sub_index=`expr mach "$var" hello`
>>>5
var="hello word"
sub_index=`expr mach "$var" word`
>>>0  # 因为match方法必须从头开始匹配,从中间任意一个字符匹配都匹配不到

提取子串

方法一:

1. ${string:position} # 下标是从0开始。不写length默认是提取到末尾
2. ${string:position:length}
3. ${string: -position} #-1是最后一个字符。注意:和 -之间有空格
	或者${string:(position)}

示例:

var="hadoop hive spark"
substr=${var:10} # 从第10个位置提取到最后
>>>e spark
substr=${var:10:5}
>>>e spa
substr=${var: -5} # 倒数第5个位置开始提取到最后
>>>spark
substr=${var: -5:3} # 倒数第五个位置开始提取3个字符
>>>spa
substr=${var:(-5)} # 同substr=${var: -5}
substr=${var:(-5):3} # 同substr=${var: -5:3}

方法二:

expr substr $string $position $length # 使用该方法下标是从1开始计数

示例:

var="hadoop hive spark"
substr=`expr substr "$var" 10 5`
>>>ve sp # 注意这个方法下标是从1开始的
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值