7.shell中的字符串处理

shell中的字符串处理

shell代码

#!/bin/bash
# 英文字符串长度,中文字符串长度
var1=xyzaaxyzaafff
var11=aaxxxxxffzaafff
echo "英文变量var1的长度=${#var1}"

var2="中文长度"
echo "中文字符长度=${#var2}"

# 跳过 var1 前两个字符
# 字符串切片
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=
# 定义了 var= 空,不会生效,仍然为空
echo "使用短橫线默认值,var3变量的值:${var3-xyz}"
# 定义了 var= 空,也是会生效的
echo "使用冒号短横线默认值,var3变量的值:${var3:-xyz}"

var4=
echo "var4空不空与var3相反,var4变量的值:${var3+xyz}"
echo "var4空不空与var3相反,var4变量的值:${var3:+abc}"

执行结果

[root@KS8P-Test-K8S01 ~]# sh str.sh 
英文变量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变量的值:
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流月up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值