【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字符串截取及命令替換


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM