1,字串剪裁
file=/dir1/dir2/dir3/my.file.txt
我們可以用 $ 分別替換獲得不同的值:
$:拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt
$:拿掉最後一條 / 及其左邊的字串:my.file.txt
$:拿掉第乙個 . 及其左邊的字串:file.txt
$:拿掉最後乙個 . 及其左邊的字串:txt
$:拿掉最後條 / 及其右邊的字串:/dir1/dir2/dir3
$:拿掉第一條 / 及其右邊的字串:(空值)
$:拿掉最後乙個 . 及其右邊的字串:/dir1/dir2/dir3/my.file
$:拿掉第乙個 . 及其右邊的字串:/dir1/dir2/dir3/my
記憶的方法為:
# 是去掉左邊(在鍵盤上 # 在 $ 之左邊)
% 是去掉右邊(在鍵盤上 % 在 $ 之右邊)
單一符號是最小匹配;兩個符號是最大匹配。也就是說,當匹配的有多種方案的時候,選擇匹配的最大長度還是最小長度。(注意,$是用於掐頭去尾,表示式一定得是需要去掉的字元段的準確表述或正規表示式。如,string=qwenkj,那麼$得到的仍是原字串string)
還有兩種方式:
tomcat_path=$,
是從字串的第n+1個(含第n+1個)擷取長度為m的字串,可省略m引數
expr substr "$x" 1 3,擷取從第1個到第3個的字元子串
2,得到長度
x="abcd"
#方法一
expr length $x
# 方法二
echo $
# 方法三
expr "$x" : ".*"
3.查詢子串
expr index $x "string" 查詢string裡從第乙個字元起,所有字元能匹配到$x裡字元的最先位置 如 expr index "adcd" "d2a" 返回值為1
awk 'begin ' (返回的為符合條件的第乙個子串的位置,如沒有返回0)
注意:expr match $x "abc" ,在expr的match是從第乙個字元開始對比的,表示匹配長度
4.字串的替換
x=abcdabcd
echo $ # 只替換乙個
bbcdabcd
echo $ # 替換所有
bbcdbbcd
例子:
shell 字串操作
字串長度 expr length string expr string 從字串開始的位置匹配子串的長度 expr match string substring substring 是乙個正規表示式 expr string substring substring 是乙個正規表示式 索引expr ind...
shell字串操作
linux shell 字串操作 長度,查詢,替換 詳解 在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如 awk,sed都可以做字串各種操作。其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。一 判斷...
shell 字串操作
字串長度 stringz abcdefg len len expr length stringz 擷取指定個數的字串 stringz abcdefgasdqwe expr substr stringz 2 3 從第二個字元開始,擷取3個字元 expr substr stringz 3 5 從第三個字...