• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            shell字符串處理

            Posted on 2008-08-12 22:07 Prayer 閱讀(734) 評論(0)  編輯 收藏 引用 所屬分類: Shell
            1. 構(gòu)造字符串
              直接構(gòu)造
              STR_ZERO=hello
              STR_FIRST="i am a string"
              STR_SECOND='success'

              重復(fù)多次
              #repeat the first parm($1) by $2 times
              strRepeat()
              {
              local x=$2
              if [ "$x" == "" ]; then
              x=0
              fi

              local STR_TEMP=""
              while [ $x -ge 1 ];
              do
              STR_TEMP=`printf "%s%s" "$STR_TEMP" "$1"`
              x=`expr $x - 1`
              done
              echo $STR_TEMP
              }

              舉例:
              STR_REPEAT=`strRepeat "$USER_NAME" 3`
              echo "repeat = $STR_REPEAT"

            2. 賦值與拷貝
              直接賦值
              與構(gòu)造字符串一樣
              USER_NAME=terry

              從變量賦值
              ALIASE_NAME=$USER_NAME


            3. 聯(lián)接
              直接聯(lián)接兩個字符串
              STR_TEMP=`printf "%s%s" "$STR_ZERO" "$USER_NAME"`
              使用printf可以進行更復(fù)雜的聯(lián)接

            4. 求長
              求字符數(shù)(char)
              COUNT_CHAR=`echo "$STR_FIRST" | wc -m`
              echo $COUNT_CHAR

              求字節(jié)數(shù)(byte)
              COUNT_BYTE=`echo "$STR_FIRST" | wc -c`
              echo $COUNT_BYTE

              求字數(shù)(word)
              COUNT_WORD=`echo "$STR_FIRST" | wc -w`
              echo $COUNT_WORD

            5. 比較
              相等比較
              str1 = str2

              不等比較
              str1 != str2

              舉例:
              if [ "$USER_NAME" = "terry" ]; then
              echo "I am terry"
              fi

              小于比較
              # return 0 if the two string is equal, return 1 if $1 < $2, else 2 strCompare() { local x=0 if [ "$1" != "$2" ]; then x=2 local TEMP=`printf "%s\n%s" "$1" "$2"` local TEMP2=`(echo "$1"; echo "$2") | sort` if [ "$TEMP" = "$TEMP2" ]; then x=1 fi fi echo $x }
            6. 測試
              判空
              -z str

              判非空
              -n str

              是否為數(shù)字
              # return 0 if the string is num, otherwise 1
              strIsNum()
              {
              local RET=1
              if [ -n "$1" ]; then
              local STR_TEMP=`echo "$1" | sed 's/[0-9]//g'`
              if [ -z "$STR_TEMP" ]; then
              RET=0
              fi
              fi
              echo $RET
              }

              舉例:
              if [ -n "$USER_NAME" ]; then
              echo "my name is NOT empty"
              fi

              echo `strIsNum "9980"`


            7. 分割
              以符號+為準,將字符分割為左右兩部分
              使用sed
              舉例:
              命令 date --rfc-3339 seconds 的輸出為
              2007-04-14 15:09:47+08:00
              取其+左邊的部分
              date --rfc-3339 seconds | sed 's/+[0-9][0-9]:[0-9][0-9]//g'
              輸出為
              2007-04-14 15:09:47
              取+右邊的部分
              date --rfc-3339 seconds | sed 's/.*+//g'
              輸出為
              08:00

              以空格為分割符的字符串分割
              使用awk
              舉例:
              STR_FRUIT="Banana 0.89 100"
              取第3字段
              echo $STR_FRUIT | awk '{ print $3; }'

            8. 子字符串
              字符串1是否為字符串2的子字符串
              # return 0 is $1 is substring of $2, otherwise 1
              strIsSubstring()
              {
              local x=1
              case "$2" in
              *$1*) x=0;;
              esac
              echo $x
              }
            久久久黄色大片| 久久不见久久见免费视频7| 久久久久国产成人精品亚洲午夜| 国产日产久久高清欧美一区| 久久国产精品99久久久久久老狼 | 久久亚洲精品无码AV红樱桃| 亚洲欧洲日产国码无码久久99| 色综合久久久久久久久五月| 国产亚洲综合久久系列| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 久久久久国色AV免费看图片| 久久人人爽人人精品视频| 久久亚洲AV成人无码国产| 国内精品久久久久久久久| 久久天堂AV综合合色蜜桃网 | 亚洲精品乱码久久久久久不卡| 亚洲AV无码久久精品蜜桃| 91精品免费久久久久久久久| 无码精品久久久天天影视| 亚洲国产成人乱码精品女人久久久不卡| 久久精品国产亚洲AV香蕉| 久久国产美女免费观看精品| 一级做a爰片久久毛片16| 久久久久久久久久久久中文字幕| 伊人久久一区二区三区无码| 久久久久久毛片免费看| 99久久精品国产毛片| 国产∨亚洲V天堂无码久久久| 亚洲中文久久精品无码ww16| 久久笫一福利免费导航 | 欧美激情一区二区久久久| 久久午夜福利电影| 亚洲国产精品一区二区久久| 久久久精品2019免费观看 | 久久99国产精一区二区三区| 久久精品亚洲中文字幕无码麻豆| 污污内射久久一区二区欧美日韩 | 国产精品禁18久久久夂久| 国产成人久久精品区一区二区| 好久久免费视频高清| 久久综合九色综合97_久久久|