shell中字串操作【轉】
轉自:http://blog.chinaunix.net/uid-29091195-id-3974751.html
我們所遇到的程式語言中(彙編除外)都少不了字串處理函式吧,
當然shell程式設計也不例外咯,那麼下面我們一起來看下shell中字串
處理的相關操作吧。大概下面的字串操作可以分為兩種型別,一種
屬於變數替換,另一種屬於繼承unix expr命令吧!
1、測試字串長度 ${#string} expr length $string expr "$string" : '.*' 例: #!/bin/bash str="asfd" echo "${#str}" a=expr length $str echo "a=$a" a=0 a=`expr "$str" : '.*'` echo "a=$a" 2、匹配字串開頭的子串長度 expr match "$string" '$substring' $substring是一個正規表示式. expr "$string" : '$substring' $substring是一個正規表示式. 例: #!/bin/bash str=abcABC123ABCabc echo `expr match "$str" 'abc[A-Z]*.2'` # 8 echo `expr "$str" : 'abc[A-Z]*.2'` # 8 3、索引 expr index $string $substring 在字串$string中所匹配到的$substring第一次所出現的位置. 例: #!/bin/bash str=abcABC123ABCabc echo `expr index "$str" C` # 6 C 字元的位置. echo `expr index "$str" c` # 3 4、提取子串 ${string:position} 在$string中從位置$position開始提取子串。 如果$string是"*"或者"@", 那麼將會提取從位置$position開始的位置引數. [1] ${string:position:length} 在$string中從位置$position開始提取$length長度的子串. 例: #!/bin/bash str="abcABC123ABCabc" echo ${str:0} #輸出abcABC123ABCabc echo ${str:3} #輸出ABC123ABCabc echo ${str:6:3} #輸出123 5、子串削除 ${string#substring} 從$string的開頭位置截掉最短匹配的$substring. ${string##substring} 從$string的開頭位置截掉最長匹配的$substring. 例: #!/bin/bash str="abcABC123ABCabc" echo ${str#a*C} #輸出123ABCabc echo ${str##a*C} #輸出abc echo ${str##a*1} #輸出23ABCabc ${string%substring} 從$string的結尾位置截掉最短匹配的$substring. ${string%%substring} 從$string的結尾位置截掉最長匹配的$substring. 例: #!/bin/bash str=abcABC123ABCabc echo ${str%b*c} #輸出 abcABC123ABCa echo ${str%%b*c} #輸出 a 6、子串替換 ${string/substring/replacement} 使用$replacement來替換第一個匹配的$substring. ${string//substring/replacement} 使用$replacement來替換所有匹配的$substring. ${string/%substring/replacement} 如果$substring匹配$string的結尾部分, 那麼就用$replacement來替換$substring. ${string/#substring/replacement} 如果$substring匹配$string的開頭部分, 那麼就用$replacement來替換$substring. 例: #!/bin/bash str="abcABC123ABCabc" echo ${str/ABC/&&&} #輸出 abc&&&123ABCabc echo ${str//ABC/&&&&} #輸出 abc&&&&123&&&&abc echo ${str/%abc/&&&} #輸出 abcABC123ABC&&& echo ${str/#abc/&&&} #輸出 &&&ABC123ABCabc
【作者】張昺華
【新浪微博】 張昺華--sky
【twitter】 @sky2030_
【facebook】 張昺華 zhangbinghua
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利.
相關文章
- 【轉載】Python字串操作之字串分割與組合Python字串
- Shell中的字串擷取介紹字串
- shell指令碼字串和陣列的使用操作方法指令碼字串陣列
- Shell基礎教程七:Shell字串字串
- javascript中字串常用操作總結JavaScript字串
- shell 給字串增加單引號,並移除字串中多餘的空格字串
- scala常用操作-Tuple元祖轉換成String字串字串
- 字串操作字串
- [C#]C#中字串的操作C#字串
- 20220406Java字串操作類中scompareTo()Java字串
- shell切分字串到陣列字串陣列
- shell字串處理總結字串
- shell中輸入字串和文字在同一行字串
- shell初步(轉)
- 字串的操作字串
- Python字串操作Python字串
- (四)Python中的字串型別及操作Python字串型別
- JavaScript中對字串常用的操作方法JavaScript字串
- JAVA字串轉日期或日期轉字串Java字串
- JS json字串轉物件、物件轉字串JSON字串物件
- Python中列表和字串的反轉Python字串
- [20181212]bash shell 字串 補零.txt字串
- xml字串轉JSON字串XML字串JSON
- Hbase shell的基本操作
- 在 Shell 中轉換 Python 正規表示式Python
- Laravel str 字串操作Laravel字串
- C# 字串操作C#字串
- pandas中字串object 轉化 datetime 型別字串Object型別
- Python 中的反轉字串:reversed()、切片等Python字串
- Python中怎麼轉換字串大小寫Python字串
- shell字串按照指定分隔符切割字串
- shell 使用陣列及字串擷取陣列字串
- Linux 使用 shell 指令碼處理字串Linux指令碼字串
- 旋轉字串字串
- Python中的字串操作(Python3.6.1版本)Python字串
- 超詳細!盤點Python中字串的常用操作Python字串
- python中字串基本操作以及三種位運算Python字串
- Java中的字串操作(比較String,StringBuiler和StringBuffer)Java字串UI
- C++中string字串的基礎操作,學習C++字串