Shell编程十一-Shell字符串的截取

Shell字符串截取

实例:

#!/bin/bash
#--------------------------------------------
#name:practise31.sh
#author:wdh
#date:20181218
#--------------------------------------------

#shell字符串的截取

#网址截取
netUrl="https://www.hao123.com/test.html"
echo "$netUrl"
echo '---------------------------------------------------'

#1. #号截取,删除左边字符,保留右边字符。
echo ${netUrl#*//}
#其中netUrl是变量名,#号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符,即删除:https://
echo '---------------------------------------------------'

#2. ##号截取,删除左边字符,保留右边字符。
echo ${netUrl##*/}
# ##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符,即删除:https://www.hao123.com/
echo '---------------------------------------------------'

#3. %号截取,删除右边字符,保留左边字符
echo ${netUrl%/*}
# %/* 表示从右边开始,删除第一个 / 号及右边的字符
echo '---------------------------------------------------'

#4. %% 号截取,删除右边字符,保留左边字符
echo ${netUrl%%/*}
# %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
echo '---------------------------------------------------'

#5. 从左边第几个字符开始,及字符的个数
echo ${netUrl:0:4}
# 0表示从左边第1个字符开始截取,截取的字符个数是4个
echo '---------------------------------------------------'

#6. 从左边第几个字符开始,一直到结束
echo ${netUrl:8}
# 5表示从左边第9个字符开始截取,一直到结束的所有字符
echo '---------------------------------------------------'

#7. 从右边第几个字符开始,及字符的个数
echo ${netUrl:0-9:4}
# 0-9表示从右边第9个字符开始截取,截取的字符个数是4个
echo '---------------------------------------------------'

#8. 从右边第几个字符开始,一直到结束
echo ${netUrl:0-9}
# 0-9表示从右边第9个字符开始截取,一直到结束的所有字符
echo '---------------------------------------------------'

#9. 从左边第几个字符开始,及字符的个数
echo `expr substr "$netUrl" 1 4`
# 'expr'支持模式匹配和字符串操作。字符串表达式的优先级高于数值表达式和逻辑关系表达式。
# 'substr STRING POSITION LENGTH'
# 返回STRING字符串中从POSITION开始,长度最大为LENGTH的子串。如果POSITION或LENGTH为负数,0或非数值,则返回空字符串

# 1表示从左边第一个字符开始截取,5表示截取的字符个数是4个
echo '---------------------------------------------------'


#10. 从左边第几个字符开始,及字符的个数
echo $netUrl|awk '{print substr($1,1,5)}'
# $1表示子字符串1,1表示从左边第一个字符开始截取,5表示截取的字符个数是5个
echo '---------------------------------------------------'

#11. 从左边第几个字符开始,及字符的个数
echo $netUrl | cut -c1-5
# 1表示从左边第一个字符开始截取,5表示截取的字符个数是5个
echo '---------------------------------------------------'

#12. 从左边第几个字符开始,及字符的个数
echo $netUrl|dd bs=1 count=5 2>/dev/null
echo ""
# 1表示从左边第一个字符开始截取,5表示截取的字符个数是5个
echo '---------------------------------------------------'

执行 ./practise31.sh
运行脚本,结果如下:

https://www.hao123.com/test.html
---------------------------------------------------
www.hao123.com/test.html
---------------------------------------------------
test.html
---------------------------------------------------
https://www.hao123.com
---------------------------------------------------
https:
---------------------------------------------------
http
---------------------------------------------------
www.hao123.com/test.html
---------------------------------------------------
test
---------------------------------------------------
test.html
---------------------------------------------------
http
---------------------------------------------------
https
---------------------------------------------------
https
---------------------------------------------------
https
---------------------------------------------------
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值