1.#号截取,删除左边字符,保留右边字符。    

    代码:echo ${var#*//}

           其中var是变量名,#是运算符,*//表示从左边开始删除第一个//及左边的所有字符   

    示例:

    

shell脚本中字符串截取的多种方法_运算符

    结果:

    

shell脚本中字符串截取的多种方法_分隔符_02

2.##截取,删除左边字符,保留右边字符

    代码:echo ${var##*/}

            其中##*/表示从左边开始删除最后(最右边)一个/号及左边的所有字符

    示例:

    

shell脚本中字符串截取的多种方法_分隔符_03

    结果:

    

shell脚本中字符串截取的多种方法_分隔符_04

3.% 号截取,删除右边字符,保留左边字符

    代码:echo ${var%/*}

              其中%/*表示从右边开始,删除第一个/号及右边的字符

    示例:

    

shell脚本中字符串截取的多种方法_运算符_05

    结果:

    

shell脚本中字符串截取的多种方法_运算符_06

4.%%号截取,删除右边字符,保留左边字符

    代码:echo ${%%/*}

            其中%%/*表示从右边开始,删除最后(最左边)一个/及右边的字符

    示例:

    

shell脚本中字符串截取的多种方法_多列_07

    结果:

    

shell脚本中字符串截取的多种方法_多列_08

5.从左边第几个字符开始,及字符的个数

    代码:echo ${var:0:5}

            其中的0表示左边第一个字符开始,5表示字符的总个数

    示例:

    

shell脚本中字符串截取的多种方法_多列_09

    结果:

    

shell脚本中字符串截取的多种方法_运算符_10

6.从左边第几个字符开始,一直到结束

    代码:echo ${var:7}

            其中的7表示从左边第8个字符开始,一直到结束

    示例:

    

shell脚本中字符串截取的多种方法_多列_11

    结果:

    

shell脚本中字符串截取的多种方法_运算符_12

7.从右边第几个字符开始,及字符的个数

    代码:echo ${var:0-7:3}

            其中的0-7表示从右边数起第七个字符开始,3表示字符的个数

    示例:

    

shell脚本中字符串截取的多种方法_多列_13

    结果:

    

shell脚本中字符串截取的多种方法_多列_14

8.从右边第几个字符开始,一直到结束

    代码: echo ${var:0-7}

            表示从右边第七个字符开始,一直到结束

    示例:

    

shell脚本中字符串截取的多种方法_运算符_15

    结果:

    

shell脚本中字符串截取的多种方法_分隔符_16

 

9、cut   cut命令的功能是用于按列提取文件内容。cut是可以根据指定的关键词信息,针对特定的列内容进行过滤。

cut常用参数:
  -s 禁止打印不包含分隔符的行
  -d 根据特定的分隔符分割
  -f  取特定列,可以是单列,也可以是多列
  -c 根据字符取
  --output-delimiter   设置截取的列以特定分隔符显示

参考实例:

(1)以冒号为间隔符,仅提取指定文件中第一列的内容:

shell脚本中字符串截取的多种方法_多列_17

(2)以冒号为间隔符,提取指定文件中第一列到第四列的内容:

 

shell脚本中字符串截取的多种方法_分隔符_18

以冒号为间隔符,提取指定文件中第一列、第四列的内容

shell脚本中字符串截取的多种方法_分隔符_19

(4)仅提取指定文件中每行的前4个字符:

shell脚本中字符串截取的多种方法_分隔符_20

 5)切割/etc/passwd的第2,4,6个字节

shell脚本中字符串截取的多种方法_分隔符_21

 6)字符串截取 第2位之后(含第2位

shell脚本中字符串截取的多种方法_分隔符_22

shell脚本中字符串截取的多种方法_分隔符_23