Linux入门小抄-part5.5-Shell编程进阶(补充)--shell对字符串的操作

Shell操作字符串

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

你可能感兴趣的:(Linux)