隨筆-314  評論-209  文章-0  trackbacks-0

          shell字符串的截取的問題:
          一、Linux shell 截取字符變量的前8位,有方法如下:
          1.expr substr “$a” 1 8
          2.echo $a|awk ‘{print substr(,1,8)}’
          3.echo $a|cut -c1-8
          4.echo $
          5.expr $a : ‘\(.\\).*’
          6.echo $a|dd bs=1 count=8 2>/dev/null

          二、按指定的字符串截取
          1、第一種方法:
          ${varible##*string} 從左向右截取最后一個string后的字符串
          ${varible#*string}從左向右截取第一個string后的字符串
          ${varible%%string*}從右向左截取最后一個string后的字符串
          ${varible%string*}從右向左截取第一個string后的字符串
          “*”只是一個通配符可以不要

          例子:
          $ MYVAR=foodforthought.jpg
          $ echo ${MYVAR##*fo}
          rthought.jpg
          $ echo ${MYVAR#*fo}
          odforthought.jpg

          2、第二種方法:${varible:n1:n2}:截取變量varible從n1到n2之間的字符串。

          可以根據特定字符偏移和長度,使用另一種形式的變量擴展,來選擇特定子字符串。試著在 bash 中輸入以下行:
          $ EXCLAIM=cowabunga
          $ echo ${EXCLAIM:0:3}
          cow
          $ echo ${EXCLAIM:3:7}
          abunga

          這種形式的字符串截斷非常簡便,只需用冒號分開來指定起始字符和子字符串長度。

          三、按照指定要求分割:
          比如獲取后綴名
          ls -al | cut -d “.” -f2

          應用心得:

          $MYVAR="12|dadg"
          echo ${MYVAR##*|}   #打印分隔符后的字符串
          dafa
          echo ${MYVAR%%|*} #打印分隔符前的字符串
          12

          posted on 2011-03-04 15:09 xzc 閱讀(3605) 評論(1)  編輯  收藏 所屬分類: linux/unix

          評論:
          # re: shell字符串的截取 2011-03-04 15:12 | xzc

          #是否包含@INFILE@字符串的判斷
          if echo "$ctl_file"|grep -q "@INFILE@"
          then
          #分隔符前字符串
          echo "${ctl_file%%@INFILE@*}" >${table_name}.ctl
          #文件名
          echo "${infile}" >>${table_name}.ctl
          #分隔符后字符串
          echo "${ctl_file##*@INFILE@}" >>${table_name}.ctl
          else
          echo "${ctl_file}" >${table_name}.ctl
          fi
            回復  更多評論
            
          主站蜘蛛池模板: 邵东县| 河池市| 利辛县| 永川市| 布尔津县| 班玛县| 新密市| 五河县| 衡阳县| 绥德县| 湘潭县| 湘乡市| 什邡市| 南郑县| 玉龙| 洮南市| 洞口县| 岳阳县| 光泽县| 怀宁县| 锦州市| 托克托县| 汪清县| 肥乡县| 改则县| 盐源县| 会昌县| 朝阳县| 油尖旺区| 丹巴县| 上犹县| 两当县| 监利县| 图片| 宁陵县| 台中县| 贵溪市| 石柱| 伊春市| 象州县| 北票市|