shell截取字符串

在截取shell變量中的子串中,有很多辦法,下面簡單介紹一種。利用變量自身以及特殊的符號即可實現
file=/dir1/dir2/dir3/my.file.txt
要求截取一下字符串
file.txt
txt
/dri1/dir2/dir3
null
dir1/dir2/dir3/my.file.txt
/dir1/dir2/dir3/my.file
/dir1/dir2/dir3/my
my.file.txt
處理方法:
echo ${file#*.}    去掉第一點以及左邊的內容
echo ${file##*.}   去掉最後一個點以及左邊的內容
echo ${file%/*}    去掉最後一個/以及右邊的內容
echo ${file%%/*}   去掉第一個/以及右邊的內容
echo ${file#*/}     去掉第一個/以及左邊的內容
echo ${file%.*}     去掉最後一個點以及右邊的內容
echo ${file%%.*}    去掉第一個點以及右邊的內容
echo ${file##*/}     去掉最後一個/以及左邊的內容
解析:如果最前面出現的是#好那麼就是代表去掉左邊的內容,一個#號代表的是去掉第一個出現的某個字符的左邊的內容,兩個#代表的是去掉最後一個出現字符的左邊的內容,%正好相反,代表的是去掉右邊,而且%代表的是去掉最後一個出現的,%%代表的是第一個出現的。選取的字符出現的位置也有差別,#是後面加上*號,然後添加你定位的符號,然而%是先定位符號再加上*號。
發佈了166 篇原創文章 · 獲贊 16 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章