shell中的字符串操作——字符串的切割总结

前言

在python和java等语言中,对字符串操作大多都是调用函数来完成,但是像shell这种使用c语言编写的程序,对字符串的切割显得更加简单。shell脚本中对字符串的切割有很多种,在这里我将我熟悉,好用的方法给总结出来,分享给大家,希望能够对你们的学习和工作起到帮助。

1、${var#}

#! /bin/bash
var=“www.google.com
echo ${var#*.*. }
echo ${var#*.}
输出结果为:
com
google.com

在这里 ${var#} 意思是从前向后(从左向右)截取,如上面的 ${var#*.*.} 的意思是从左到右截取第二个 . 后面的所有内容,也就是 com${var#*.} 也就是截取第一个点后面的所有内容, google.com。(这里面的 * 是匹配任意多个字符的意思,正则匹配)

2、${var##}

#! /bin/bash
var=“www.google.com
echo ${var##*.}
输出结果为:
com

${var##} 是从左向右截取最后一个 . 后(右边)的所有内容。

3、${var%}

#! /bin/bash
var=“www.google.com
echo ${var%.*.*}
echo ${var%.*}
输出结果为:
www
www.google

用法 ${var##} 和相似,不过 ${var%} 是从后往前(从右向左)截取,第一个为从右向左截取第二个 . 左边的内容 www,第二个是从右向左截取第一个 . 左边的所有内容 www.google

4、${var%%}

#! /bin/bash
var=“www.google.com
echo ${var%%.*}
输出结果为:
www

${var%%} 是从右向左截取最后一个 . 后(左边)的所有内容。

5、步长截取法 ${var:num1:num2}

#! /bin/bash
var=“www.google.com
echo ${var:2:5}
echo ${var:0-5:3}
echo ${var:6}
输出结果为:
ww.go
.co
oogle.com

${var:2:5} 从第二位开始(包括第二位)截取5个字符
${var:0-5:3} 从倒数第五位开始(不包括倒数第五位)截取3个字符(可以把0-5看成-5,同样1-6也是这样,看成-5,结果和0-5一样)
${var:6} 从第六位开始(包括第六位)截取剩余所有字符

结语

这里为大家展示的是最常用的几种方法,还有很多对字符串的截取方法,如 awk、cut、sed、grep 都可以对字符串进行截取操作,如果有什么疑问,或者我写的有什么不足之处,欢迎大家留言告知。

猜你喜欢

转载自blog.csdn.net/qq_33236487/article/details/83215874