【Shell基础】字符串删除

案例:将金额18.中的点去掉,结果为18

#!/bin/sh
old_value=18. new_value=`echo ${old_value%%.*}` echo $new_value

${filename##*.}是什么意思呢?

在 ${ } 中输入变量名称,两个##(或一个#),然后是通配符 ("*.")。

1.#意思是从字符串的开始字符开始匹配,删除匹配部分。

2.两个##代表匹配的最大长度,一个#代表匹配的最小长度(也就是说这里不是一个#匹配一个‘.’)

// 获取后缀名tar.gz
filename=testfile.tar.gz
file=${filename#*.}
echo $file
// 获取后缀名gz
filename=testfile.tar.gz
file=${filename##*.}
echo $file

${filename%%*.}是什么意思呢?

在 ${ } 中输入变量名称,两个%%(或一个%),然后是通配符 (".*")。

1.%就是从末尾字符串开始匹配,删除匹配部分。
2.两个%%就是匹配最大长度,%就是匹配最小长度。
//截取testfile.tar
filename=testfile.tar.gz
file=${filename%.*}
echo $file
//截取testfile
filename=testfile.tar.gz
file=${filename%%.*}
echo $file

截取任意的字符

 格式为${filename::}第一个':'后面的数字是字符串的索引从左边开始,索引从0开始,第二个':'后面的数字是长度,两处的数字都是十进制数值。
//截取file 
filename=testfile.tar.gz 
file=${filename:4:4}
echo $file
// 截取test 
filename=testfile.tar.gz
file=${filename:0:4}
echo $file

 

参考文档:

Bash shell字符串截取及命令替换

转载于:https://www.cnblogs.com/badboy200800/p/10561939.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值