【Linux Shell】字符串删除
发布时间:2020-12-14 01:56:12 所属栏目:Linux 来源:网络整理
导读:案例:将金额18.中的点去掉,结果为18 #!/bin/sh old_value= 18 . new_value =` echo ${old_value%%.* }` echo $new_value ${filename##*.}是什么意思呢? 在 ${ } 中输入变量名称,两个##(或一个#),然后是通配符 ("*.")。 1.#意思是从字符串的开始字符开始
案例:将金额18.中的点去掉,结果为18 #!/bin/sh ${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字符串截取及命令替换 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |