Calvin's Tech Space

          成于堅忍,毀于浮躁

             :: 首頁 :: 聯系 :: 聚合  :: 管理

          得到長度

          %x="abcd"

          #方法一

          %expr length $x

          4

          方法二

          %echo ${#x}

          4

          方法三

          %expr "$x" : ".*"

          4

          # expr 的幫助

          # STRING : REGEXP   anchored pattern match of REGEXP in STRING

          查找子串

          %expr index  $x "b"

          2

          %expr index  $x "a"

          1

          %expr index  $x "b"

          2

          %expr index  $x "c"

          3

          %expr index  $x "d"

          4

          得到子字符串

          方法一

          # expr <string> startpos length

          %expr substr "$x" 1 3

          abc

          %expr substr "$x" 1 5

          abcd

          %expr substr "$x" 2 5

          bcd

          方法二

          # ${x:pos:lenght}

          %echo ${x:1}

          bcd

          %echo ${x:2}

          cd

          %echo ${x:0}

          abcd

          %echo ${x:0:2}

          ab

          %pos=1

          %len=2

          %echo ${x:$pos:$len}

          Bc

          匹配正則表達式

          打印匹配長度

          %expr match $x "."

          1

          %expr match $x "abc"

          3

          %expr match $x "bc"

          0

          字符串的掐頭去尾

          %x=aabbaarealwwvvww

          %echo "${x%w*w}"

          aabbaarealwwvv

          %echo "${x%%w*w}"

          aabbaareal

          %echo "${x##a*a}"

          lwwvvww

          %echo "${x#a*a}"

          Bbaarealwwvvww

          其中 , # 表示掐頭, 因為鍵盤上 在 的左面。

          其中 , % 表示%,  因為鍵盤上 在 的右面。

          單個的表示最小匹配,雙個表示最大匹配。

          也就是說,當匹配的有多種方案的時候,選擇匹配的最大長度還是最小長度。

          字符串的替換

          %x=abcdabcd

          %echo ${x/a/b} # 只替換一個

          bbcdabcd

          %echo ${x//a/b} # 替換所有

          Bbcdbbcd

          不可以使用 regexp , 只能用 * ? 的文件擴展方式。

          posted on 2010-09-24 21:21 calvin 閱讀(175) 評論(0)  編輯  收藏 所屬分類: Linux
          主站蜘蛛池模板: 华安县| 阿拉善左旗| 得荣县| 兴山县| 文化| 元江| 江城| 革吉县| 宜宾县| 洪湖市| 庆安县| 通化市| 巴马| 西昌市| 湖北省| 沭阳县| 荆门市| 锡林浩特市| 唐海县| 嘉祥县| 常宁市| 葫芦岛市| 民勤县| 武乡县| 连城县| 贺州市| 剑川县| 英超| 晋城| 包头市| 友谊县| 尤溪县| 安吉县| 远安县| 湘阴县| 永新县| 福建省| 延吉市| 东乌| 巩留县| 平塘县|