shell 文本、字符串处理
1、字符串切片
${变量:偏移量:截取长度}
--------------------------example
[192.168.2.230] - root@ubuntu20.04.5-template:/ root
$ MYPATH=' /usr/bin/wget'
[192.168.2.230] - root@ubuntu20.04.5-template:/root
$ echo ${MYPATH: 4:4}
/bin #其会左向右从第四位向后取四位(字符串第一位为0)
[192.168.2.230] - root@ubuntu20.04.5-template:/ root
$ echo ${MYPATH: -4} #这会右向左从末尾向前取四位,「-4和冒号之间要有一个空格」
2、基于模式取子串
${var#*word} 其中word可以是指定的任意字符,自左而右,删除字符串开头至第一次出现word字符之间的所有字符。
${var##*word}
其中word可以是指定的任意字符,自左而右,删除字符串开头至最后一次出现word字符之间的所有字符。
${var%sword*}
其中word可以是指定的任意字符,自右而左,删除字符串尾部至第一次出现word字符之间的所有字符。
${var%%sword*}
其中word可以是指定的任意字符,自右而左,删除字符串尾部至最后一次出现word字符之间的所有字符
3、查找删除
${var/匹配文本}
删除第一次匹配到的内容
${var//pattern}
删除所有匹配到的内容
${var/#pattern}
删除行首匹配到的内容
${var/%pattern}
删除行尾匹配到的内容
4、查找替换
${var/匹配文本/替换文本}
替换第一次匹配到的内容
${var//匹配文本/替换文本}
替换所有匹配到的内容
${var/#匹配文本/替换文本}
行首匹配时替换行首
${var/%匹配文本/替换文本}
行尾匹配时替换行尾