子字符串截取(切片)、删除、替换、生成随机字符串

一、子字符串截取

1、路径分割:dirname   basename

#var1="/etc/httpd/conf/httpd.conf"

#dirname $var1          #输出/etc/httpd/conf/

#basename $var1             #输出httpd.conf

2、expr substr

    格式:expr substr $var1 起始位置 截取长度

3、${}字符串截取

格式:${var1:起始位置:截取长度}

4、cut       

格式: #echo $var1 | cut -b 起始位置-截止位置

5、实例

#var=sulijinaliwangwang

#echo $var | cut -b 3-7

#echo $var | cut -c 3-7

#expr substr $var 3 5

#echo ${var:3:5}     #从第4个字符开始,连续输出5字符

#echo ${var::5}          #输出前5个字符(起始位置默认为0)

#echo ${var: -5} #输出后5个字符。如果没有空格,就成了变量值替换

#echo ${var:1}          #删除第1个字符,省略了截取长度(窃取长度默认为截取到最后一个字符)

二、子字符串删除

最短匹配与贪婪匹配:

var2=www.sina.com.cn

#echo ${var2#*.} #从头删到第一个点。最短匹配

#echo ${var2##*.} #从头删到最后一个点。贪婪匹配

#echo ${var2%.*} #从后删到最后一个点。最短匹配

#echo ${var2%%.*} #从后删到第一个点。贪婪匹配

#echo ${var2/n/N} #将第一个n替换N。最短匹配

#echo ${var2//n/N} #将所有n替换成N。贪婪匹配

精确匹配:

#echo ${var2#www.} #常用于删除字符串中的起始字符

#echo ${var2/com.} #常用于删除字符串中的中间字符

#echo ${var2%.cn} #常用于删除字符串中的末尾字符

三、变量值替换

方法一:

格式:${变量名-新的变量值}

原则:事先定义了不替换,事先没定义(包含空值)就替换

#unset var3

#echo ${var3-aaa} #var3事先没定义替换成aaa

#var4=444

#echo ${var4-bbb} #var4事先定义了,不替换

#var5= #附空值

#echo ${var5-ccc} #var5事先定义了,不替换

方法二:

格式:${变量名:-新的变量值}

原则:事先定义了(包含空值)就替换,事先没定义不替换

#unset var3

#echo ${var3:-aaa} #var3事先没定义替换成aaa

#var4=444

#echo ${var4:-bbb} #var4事先定义了,不替换

#var5= #附空值

#echo ${var5:-ccc} #var5事先定义了,也替换

以下例子作为了解即可:

#echo ${var6+ddd}

#echo ${var6:+ddd}

#echo ${var6=ddd}

#echo ${var6:=ddd}

#echo ${var6?ddd}

#echo ${var6:?ddd}

四、随机字符串(生成随机码)

 #date +%s | sha256sum | base64 | awk NR==1 | cut -c -8

 #date +%s | md5sum | base64 | cut -c -8

#head -1 /dev/urandom | md5sum | cut -b 1-8        #获取8个字符

#head -1 /dev/urandom | sha256sum | base64 | awk NR==1 | cut -c 1-16 #获取16个字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sulijin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值