在做shell批處理程序時候,經常會涉及到字符串相關操作。有很多命令語句,如:awk,sed都可以做字符串各種操作。 其實shell內置一系列操作符號,使用內部操作符會省略啓動外部程序等時間,因此速度會非常的快。
一、讀取
${var} | 變量var的值, 與$var相同 |
${!varprefix*} | 匹配之前所有以varprefix開頭進行聲明的變量 |
${!varprefix@} | 匹配之前所有以varprefix開頭進行聲明的變量 |
二、字符串操作(長度,讀取,刪除,替換)
${#string} | $string的長度 |
${string:position} | 在$string中, 從位置$position開始提取子串 |
${string:position:length} | 在$string中, 從位置$position開始提取長度爲$length的子串 |
${string#substring} | 從變量$string的開頭, 刪除最短匹配$substring的子串 |
${string##substring} | 從變量$string的開頭, 刪除最長匹配$substring的子串 |
${string%substring} | 從變量$string的結尾, 刪除最短匹配$substring的子串 |
${string%%substring} | 從變量$string的結尾, 刪除最長匹配$substring的子串 |
${string/substring/replacement} | 使用$replacement, 來代替第一個匹配的$substring |
${string//substring/replacement} | 使用$replacement, 代替所有匹配的$substring |
${string/#substring/replacement} | 如果$string的前綴匹配$substring, 那麼就用$replacement來代替匹配到的$substring |
${string/%substring/replacement} | 如果$string的後綴匹配$substring, 那麼就用$replacement來代替匹配到的$substring |
三、字符串查找
expr index $string $substring
匹配到子串的第一個字符的位置.
expr index $string '123' //字符串對應的下標是從1開始的