shell脚本中字符串截取的多种方法
1.#号截取,删除左边字符,保留右边字符。
代码:echo ${var#*//}
其中var是变量名,#是运算符,*//表示从左边开始删除第一个//及左边的所有字符
示例:
结果:
2.##截取,删除左边字符,保留右边字符
代码:echo ${var##*/}
其中##*/表示从左边开始删除最后(最右边)一个/号及左边的所有字符
示例:
结果:
3.% 号截取,删除右边字符,保留左边字符
代码:echo ${var%/*}
其中%/*表示从右边开始,删除第一个/号及右边的字符
示例:
结果:
4.%%号截取,删除右边字符,保留左边字符
代码:echo ${%%/*}
其中%%/*表示从右边开始,删除最后(最左边)一个/及右边的字符
示例:
结果:
5.从左边第几个字符开始,及字符的个数
代码:echo ${var:0:5}
其中的0表示左边第一个字符开始,5表示字符的总个数
示例:
结果:
6.从左边第几个字符开始,一直到结束
代码:echo ${var:7}
其中的7表示从左边第8个字符开始,一直到结束
示例:
结果:
7.从右边第几个字符开始,及字符的个数
代码:echo ${var:0-7:3}
其中的0-7表示从右边数起第七个字符开始,3表示字符的个数
示例:
结果:
8.从右边第几个字符开始,一直到结束
代码: echo ${var:0-7}
表示从右边第七个字符开始,一直到结束
示例:
结果:
9、cut cut命令的功能是用于按列提取文件内容。cut是可以根据指定的关键词信息,针对特定的列内容进行过滤。
cut常用参数:
-s 禁止打印不包含分隔符的行
-d 根据特定的分隔符分割
-f 取特定列,可以是单列,也可以是多列
-c 根据字符取
--output-delimiter 设置截取的列以特定分隔符显示
参考实例:
(1)以冒号为间隔符,仅提取指定文件中第一列的内容:
(2)以冒号为间隔符,提取指定文件中第一列到第四列的内容:
(3)以冒号为间隔符,提取指定文件中第一列、第四列的内容
(4)仅提取指定文件中每行的前4个字符:
5)切割/etc/passwd的第2,4,6个字节
6)字符串截取 第2位之后(含第2位