shell- 字符串處理 、 擴展的腳本技巧 、 正則表達式
阿新 • • 發佈:2018-10-13
exp 表達式 sub 檢測 輸出 .... file 位置 substr
從右向左,最短匹配刪除
格式:${變量名%關鍵詞*}
從右向左,最長匹配刪除
格式:${變量名%%關鍵詞*}
方法一:整體賦值
格式:數組名=(value1 value2 value3)
示例:VU=(user1 ftp mail python)
方法二:為單個元素賦值
格式:數組名[下標]=值
示例:VU[0]=ftp,VU[1]=mail,VU[2]=python
輸出數組元素
獲取單個元素
格式:${數組名[下標]}
獲取所有元素
格式:${數組名[@]}
獲取數組元素個數(長度)
格式:${#數組名[@]}
獲取連續的多個數組元素
格式:${數組名[@]:起始下標:元素個數}
字符串截取的方法
方法一:使用${}表達式
格式:${var:起始位置:長度}
方法二:使用expr substr
格式:expr substr "$var" 起始位置 長度
方法三:使用cut工具
格式:echo $var | cut -b 起始位置 結束位置
取目錄位置
格式:dirname "字符串"
取文檔的基本名稱
格式:basename "字符串"
字符串替換的方法
只替換第一個匹配的結果
格式:${var/old/new}
替換全部匹配的結果
格式:${var//old/new}
字符串掐頭
從左向右,最短匹配刪除
格式:${變量名#*關鍵詞}
從左向右,最長匹配刪除
格式:${變量名##*關鍵詞}
字符串去尾
從右向左,最短匹配刪除
格式:${變量名%關鍵詞*}
從右向左,最長匹配刪除
格式:${變量名%%關鍵詞*}
批量修改文件後綴名
[lin@shidai ~]$ cat mv.sh #!/bin/bash for FILE in *.doc do mv $FILE ${FILE%.doc}.txt done
變量初始值的檢測及設置
取值,${var:-word}
若變量var已經存在且非null,則返回$var的值
否則返回臨時字符串word,變量var值不變
賦值,${var:=word}
若變量var已經存在且非null,則返回$var的值
否則返回字符串word,且把word賦值給var變量
shell數組定義/賦值
方法一:整體賦值
格式:數組名=(value1 value2 value3)
示例:VU=(user1 ftp mail python)
方法二:為單個元素賦值
格式:數組名[下標]=值
示例:VU[0]=ftp,VU[1]=mail,VU[2]=python
輸出數組元素
獲取單個元素
格式:${數組名[下標]}
獲取所有元素
格式:${數組名[@]}
獲取數組元素個數(長度)
格式:${#數組名[@]}
獲取連續的多個數組元素
格式:${數組名[@]:起始下標:元素個數}
正則表達式
............................
shell- 字符串處理 、 擴展的腳本技巧 、 正則表達式