1. 程式人生 > >shell- 字符串處理 、 擴展的腳本技巧 、 正則表達式

shell- 字符串處理 、 擴展的腳本技巧 、 正則表達式

exp 表達式 sub 檢測 輸出 .... file 位置 substr

字符串截取的方法
  方法一:使用${}表達式
    格式:${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- 字符串處理 、 擴展的腳本技巧 、 正則表達式