後幾位字元 擷取 Shell字串處理之

2021-10-16 09:39:27 字數 1859 閱讀 3330

上一章節講解了為什麼用${}引用變數,${}還有乙個重要的功能,就是文字處理,單行文字基本上可以滿足你所有需求。

2.1 獲取字串長度

# var='hello world!'# echo $varhello world!# echo $12
2.2 字串切片格式:$$

擷取從offset個字元開始,向後length個字元。

擷取hello字串:# var='hello world!'# echo $hello擷取wo字元:# echo $wo擷取world!字串:# echo $world!擷取最後乙個字元:# echo $!擷取最後二個字元:# echo $d!擷取從倒數第3個字元後的2個字元:# echo $ld
2.3 替換字串格式:$

# var='hello world world!'將第乙個world字串替換為world:# echo $hello world world!將全部world字串替換為world:# echo $hello world world!
2.4 字串擷取格式:

$ # 刪除匹配字首

$ $ # 刪除匹配字尾

$# 去掉左邊,最短匹配模式,##最長匹配模式。

% 去掉右邊,最短匹配模式,%%最長匹配模式。

# url=""以//為分隔符擷取右邊字串:# echo $ www.baidu.com/baike/user.html以/為分隔符擷取右邊字串:# echo $user.html以//為分隔符擷取左邊字串:# echo $ http:以/為分隔符擷取左邊字串:# echo $以.為分隔符擷取左邊:# echo $/user以.為分隔符擷取右邊:# echo $html
# 去掉左邊,從左邊匹配第乙個,##從右邊匹配第乙個。

% 去掉右邊,從右邊匹配第乙個,%%從左邊匹配第乙個。

有*號情況下才這樣。

2.5 變數狀態賦值

$ 如果var變數為空則返回string

$ 如果var變數不為空則返回string

$ 如果var變數為空則重新賦值var變數值為string

$ 如果var變數為空則將string輸出到stderr

如果變數為空就返回hello world!:# var=# echo $hello world!如果變數不為空就返回hello world!:# var="hello"# echo $hello world!如果變數為空就重新賦值:# var=# echo $hello# echo $varhello如果變數為空就將資訊輸出stderr:# var=# echo $ -bash: var: value is null
${}主要用途大概就這麼多了,另外還可以獲取陣列元素,在後面章節會講到。

示例:

#!/bin/bash# 字型顏色for i in ; do echo -e "033[$i;40mhello world!033[0m"done# 背景顏色for i in ; do echo -e "033[47;$mhello world!033[0m"done# 顯示方式for i in ; do echo -e "033[$i;31;40mhello world!033[0m"done

c 擷取字串後幾位 C 字串擷取

幾個經常用到的 1 取字串的前i個字元 1 string str1 str.substring 0,i 2 string str1 str.remove i,str.length i 2 去掉字串的前i個字元 string str1 str.remove 0,i string str1 str.su...

c 擷取字串後幾位 C 幾種擷取字串的方法小結

c 幾種擷取字串的方法小結,需要的朋友可以參考一下 1.根據單個分隔字元用split擷取 例如string st gt123 1 string sarray st.split 即可得到sarray 0 gt123 sarray 1 1 2.利用多個字元來分隔字串 例如string str gtazb...

ABAP 如何擷取字串的最後幾位

問題 這個欄位的內容長度是不唯一的 bkpf awkey belnr gjahr 字段參考關鍵 發票憑證編號 會計年度 51056248772020 去掉後四位 5105624877 後四位 2020 然後得到發票憑證編號和會計年度去關聯別的表。最後沒有發現從後邊直接擷取的方法,得到了以下兩個方法....