shell中的字符串处理
shell代码
#!/bin/bash
var1=xyzaaxyzaafff
var11=aaxxxxxffzaafff
echo "英文变量var1的长度=${#var1}"
var2="中文长度"
echo "中文字符长度=${#var2}"
echo "${var1:2}"
echo "从第3个字符开始,连续取三个字符:${var1:2:3}"
echo "从左边删除最小匹配:x*a,结果为:${var1#x*a}"
echo "从左边删除最大匹配:x*a,结果为:${var1##x*a}"
echo "替换aa子串为1234,结果:${var1/aa/1234/}"
echo "替换aa子串为1234,结果:${var1//aa/1234/}"
echo "替换aa子串为为空,结果:${var1//aa/}"
echo "var11替换aa子串为你好,结果:${var11/#aa/你好}"
var3=
echo "使用短橫线默认值,var3变量的值:${var3-xyz}"
echo "使用冒号短横线默认值,var3变量的值:${var3:-xyz}"
var4=
echo "var4空不空与var3相反,var4变量的值:${var3+xyz}"
echo "var4空不空与var3相反,var4变量的值:${var3:+abc}"
执行结果
[root@KS8P-Test-K8S01 ~]
英文变量var1的长度=13
中文字符长度=4
zaaxyzaafff
从第3个字符开始,连续取三个字符:zaa
从左边删除最小匹配:x*a,结果为:axyzaafff
从左边删除最大匹配:x*a,结果为:fff
替换aa子串为1234,结果:xyz1234/xyzaafff
替换aa子串为1234,结果:xyz1234/xyz1234/fff
替换aa子串为为空,结果:xyzxyzfff
var11替换aa子串为你好,结果:你好xxxxxffzaafff
使用短橫线默认值,var3变量的值:
使用冒号短横线默认值,var3变量的值:xyz
var4空不空与var3相反,var4变量的值:xyz
var4空不空与var3相反,var4变量的值: