Linux ${} 變量內容的提取和替換功能等


[root@localhost log]# var=/dir1/dir2/file.txt
1、對變量取值
[root@localhost log]# echo ${var}
/dir1/dir2/file.txt
2、求字符串的長度
[root@localhost log]# echo ${#var}
19
3、提取位置3到最后的字符
[root@localhost log]# echo ${var:3}
r1/dir2/file.txt
4、從位置3,開始提取5個字符
[root@localhost log]# echo ${var:3:5}
r1/di
5、從左邊開始,刪除最短匹配r,這里的*表示刪除
[root@localhost log]# echo ${var#*r}
1/dir2/file.txt
6、從左邊開始,刪除最短匹配dir
[root@localhost log]# echo ${var#*dir}
1/dir2/file.txt
7、從左邊開始,刪除最短匹配數字,支持正則表達式
[root@localhost log]# echo ${var#*[0-9]}
/dir2/file.txt
8、從左邊開始,刪除最長匹配di,這里的*表示刪除
[root@localhost log]# echo ${var##*di}
r2/file.txt
9、從右邊開始,刪除最短匹配di,注意:這里的*在后面。 #在$的左邊,從左邊開始,%在$的右邊,從右邊開始
[root@localhost log]# echo ${var%di*}
/dir1/
10、從右邊開始,刪除最長匹配di
[root@localhost log]# echo ${var%%di*}
/
11、用aa替換第一個匹配的di
[root@localhost log]# echo ${var/di/aa}
/aar1/dir2/file.txt
12、用bbb替換所有匹配的dir
[root@localhost log]# echo ${var//dir/bbb}
/bbb1/bbb2/file.txt
13、用bbb替換前綴/dir,注意:/本身需要使用轉義字符
[root@localhost log]# echo ${var/#\/dir/bbb}
bbb1/dir2/file.txt
14、用bbb替換前綴le,注意:/本身需要使用轉義字符
[root@localhost log]# echo ${var/%\le*.txt/bbb}
/dir1/dir2/fibbb
15、用bbb替換后綴2*.txt,支持正則表達式
[root@localhost log]# echo ${var/%2*.txt/bbb}
/dir1/dirbbb
 


免責聲明!

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



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