Linux中操作字符串,也是一项必备的技能。其中尤以截取字符串更加频繁,下面为大家介绍几种常用方式,截取字符串
预先定义一个变量:WEBSITE='http://hadoop//centos/huangbo.html'
1. 截取,删除左边字符串(包括制定的分隔符),保留右边字符串
echo ${WEBSITE#*//}
结果:hadoop//centos/huangbo.html
2. ##截取,删除左边字符串(包括指定的分隔符),保留右边字符串,和上边一个#不同的是,它一直找到最后,而不是像一个#那样找到一个就满足条件退出了。
echo ${WEBSITE##*//}
结果:centos/huangbo.html
3. %截取,删除右边字符串(包括制定的分隔符),保留左边字符串
echo ${WEBSITE%//*}
结果:http://hadoop
4. %%截取,删除右边字符串(包括指定的分隔符),保留左边字符串,和上边一个%不同的是,它一直找到最前,而不是像一个%那样找到一个就满足条件退出了。
echo ${WEBSITE%%//*}
结果:http:
总结以上四种方式:
# 去掉左边,最短匹配模式, ##最长匹配模式。
% 去掉右边,最短匹配模式, %%最长匹配模式
5.从左边第几个字符开始,以及截取的字符的个数
echo ${WEBSITE:2:2}
结果:tp
6.从左边第几个字符开始,一直到结束
echo ${WEBSITE:2}
结果:tp://hadoop//centos//huangbo.html
7.从右边第几个字符开始,以及字符的个数
echo ${WEBSITE:0-4:2}
结果:ht
8.从右边第几个字符开始,一直到结束
echo ${WEBSITE:0-4}
结果:html
9.利用awk进行字符串截取
echo $WEBSITE | awk '{print substr($1,2,6)}'
结果:ttp://
10.获取最后几个字符
echo ${WEBSITE:(-3)}
结果:tml
11.截取从倒数第3个字符后的2个字符
echo ${WEBSITE:(-3):2}
结果:tm
使用格式:${parameter/pattern/string}
例子:
定义变量VAR:
[linux@linux ~]$ VAR="hello tom, hello kitty, hello xiaoming"
替换第一个hello:
[linux@linux ~]$ echo ${VAR/hello/hi}
hi tom, hello kitty, hello xiaoming
替换所有hello:
[linux@linux ~]$ echo ${VAR//hello/hi}
hi tom, hi kitty, hi xiaoming
在这里总结了这次和以前的内容,归类出5种得到某个字符串长度的方法
1.使用wc -L命令
echo ${WEBSITE} |wc -L
结果:35
2.使用expr的方式去计算
expr length ${WEBSITE}
35
3.通过awk + length的方式获取字符串长度
echo ${WEBSITE} | awk '{print length($0)}'
35
4.通过awk的方式计算以""分隔的字段个数
echo ${WEBSITE} |awk -F "" '{print NF}'
35
5.通过#的方式获取字符串(最简单,最常用)
echo ${#WEBSITE}
35