通过学习,我总结了九种shell中截取字符串的方法


1 使用cut命令

echo  “string”  |  cut  -c  1-4

timestamp截取字符串 截取字符串命令_操作符

“-c”表示按字符截取,  ”1-4”表示截取第1到第4个字符

还可以截取特定的某个字符


timestamp截取字符串 截取字符串命令_子字符串_02



从某个位置开始截取


timestamp截取字符串 截取字符串命令_字符截取_03



2 使用#操作符

功能:删除从左边开始第一次出现子字符串及其左边所有字符,保留右边字符

用法: echo ${var#*//}    var表示变量名

timestamp截取字符串 截取字符串命令_子字符串_04


删除从左边开始的第一个”//”及其左边所有字符,得到的结果如下

timestamp截取字符串 截取字符串命令_子字符串_05

3 使用##操作符

功能:删除从左边开始最后一次出现子字符串及其左边左右字符

用法:


timestamp截取字符串 截取字符串命令_字符截取_06



删除从最后出现的’/’及其左边所有字符,得到的结果如下


timestamp截取字符串 截取字符串命令_子字符串_07



4 使用%操作符

功能:删除从右边开始第一次出现子字符串及其右边字符,保留左边字符

用法:echo ${var%/*}

timestamp截取字符串 截取字符串命令_timestamp截取字符串_08


timestamp截取字符串 截取字符串命令_子字符串_09



5 使用%%操作符

功能:删除从右边开始最后一次出现子字符串及其右边字符,保留左边字符

用法:echo  ${var%%/*}


timestamp截取字符串 截取字符串命令_字符截取_10


timestamp截取字符串 截取字符串命令_timestamp截取字符串_11


6 截取从左边第几个字符开始之后的几个字符

用法为


timestamp截取字符串 截取字符串命令_timestamp截取字符串_12



0表示从左边第一个字符开始,5表示要截取的字符的个数,运行结果如下


timestamp截取字符串 截取字符串命令_子字符串_13



7 截取从左边第几个字符开始之后的所有字符

用法

 

timestamp截取字符串 截取字符串命令_字符截取_14

截取从第5个字符开始之后的所有字符(不包括第5个字符)

 

timestamp截取字符串 截取字符串命令_子字符串_15

8 截取从右边第几个字符开始之后的几个字符

用法

 

timestamp截取字符串 截取字符串命令_子字符串_16

0-8表示右边第8个字符开始

6表示字符的个数

 

timestamp截取字符串 截取字符串命令_timestamp截取字符串_17

9 截取从右边第几个字符开始之后的所有字符

用法

 

timestamp截取字符串 截取字符串命令_操作符_18

截取从右边第8个字符开始之后的所有字符

 

timestamp截取字符串 截取字符串命令_字符截取_19