在Linux Shell提供了一种通过指定字符位数来截取字符串的命令(字符串切片)。因该使用方式较为少见,特此记录。
截取字符串中第n个字符后的部分
基本语法
${var:n}
使用示例
[root@host-10-172-16-44 ~]$ echo $VAR
abcdef
[root@host-10-172-16-44 ~]$ echo ${VAR:1}
bcdef
[root@host-10-172-16-44 ~]$ echo ${VAR:2}
cdef
[root@host-10-172-16-44 ~]$ echo ${VAR:3}
def
截取第n个字符后起的m个字符
基本语法
${var:n:m}
使用示例
[root@host-10-172-16-44 ~]$ VAR=abcdef
[root@host-10-172-16-44 ~]$ echo $VAR
abcdef
[root@host-10-172-16-44 ~]$ echo ${VAR:0:1}
a
[root@host-10-172-16-44 ~]$ echo ${VAR:0:2}
ab
[root@host-10-172-16-44 ~]$ echo ${VAR:0:3}
abc
[root@host-10-172-16-44 ~]$ echo ${VAR:1:3}
bcd
从末尾开始截取n个字符
基本语法
${var: -n}
需要注意的是,“:”和“-”之间需要保留一个空格
使用示例
[root@host-10-172-16-44 ~]$ VAR=abcdefg
[root@host-10-172-16-44 ~]$ echo ${VAR: -1}
g
[root@host-10-172-16-44 ~]$ echo ${VAR: -2}
fg
[root@host-10-172-16-44 ~]$ echo ${VAR: -3}
efg