<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大漠駝鈴

    置身浩瀚的沙漠,方向最為重要,希望此blog能向大漠駝鈴一樣,給我方向和指引。
    Java,Php,Shell,Python,服務器運維,大數據,SEO, 網站開發、運維,云服務技術支持,IM服務供應商, FreeSwitch搭建,技術支持等. 技術討論QQ群:428622099
    隨筆 - 238, 文章 - 3, 評論 - 117, 引用 - 0
    數據加載中……

    shell字符串操作方法,以及實例

    每一種語言都有他獨自的字符串操作方法,shell也一樣,下面以以例子的方式,簡單介紹常用方法。

    1,取得字符串長度

    string=abc12342341          //等號二邊不要有空格
    echo ${#string}             //結果11
    expr length $string         //結果11
    expr "$string" : ".*"       //結果11 分號二邊要有空格,這里的:根match的用法差不多

    2,字符串所在位置

    expr index $string '123'    //結果4 字符串對應的下標是從0開始的

    這個方法讓我想起來了js的indexOf,各種語言對字符串的操作方法大方向都差不多,如果有語言基礎的話,學習shell會很快的。

    3,從字符串開頭到子串的最大長度

    expr match $string 'abc.*3' //結果9

    個人覺得這個函數的用處不大,為什么要從開頭開始呢。

    4,字符串截取

    echo ${string:4}      //2342341  從第4位開始截取后面所有字符串
    echo ${string:3:3}    //123      從第3位開始截取后面3位
    echo ${string:3:6}    //123423   從第3位開始截取后面6位
    echo ${string: -4}    //2341  :右邊有空格   截取后4位
    echo ${string:(-4)}   //2341  同上
    expr substr $string 3 3   //123  從第3位開始截取后面3位

    上面的方法讓我想起了,php的substr函數,后面截取的規則是一樣的。

    5,匹配顯示內容

    //例3中也有match和這里的match不同,上面顯示的是匹配字符的長度,而下面的是匹配的內容
    expr match $string '\([a-c]*[0-9]*\)'  //abc12342341
    expr $string : '\([a-c]*[0-9]\)'       //abc1
    expr $string : '.*\([0-9][0-9][0-9]\)' //341 顯示括號中匹配的內容

    這里括號的用法,是不是根其他的括號用法有相似之處呢,

    6,截取不匹配的內容

    echo ${string#a*3}     //42341  從$string左邊開始,去掉最短匹配子串
    echo ${string#c*3}     //abc12342341  這樣什么也沒有匹配到
    echo ${string#*c1*3}   //42341  從$string左邊開始,去掉最短匹配子串
    echo ${string##a*3}    //41     從$string左邊開始,去掉最長匹配子串
    echo ${string%3*1}     //abc12342  從$string右邊開始,去掉最短匹配子串
    echo ${string%%3*1}    //abc12     從$string右邊開始,去掉最長匹配子串

    這里要注意,必須從字符串的第一個字符開始,或者從最后一個開始,

    7,匹配并且替換

    echo ${string/23/bb}   //abc1bb42341  替換一次
    echo ${string//23/bb}  //abc1bb4bb41  雙斜杠替換所有匹配
    echo ${string/#abc/bb} //bb12342341   #以什么開頭來匹配,根php中的^有點像
    echo ${string/%41/bb}  //abc123423bb  %以什么結尾來匹配,根php中的$有點像

    posted on 2012-09-17 08:19 草原上的駱駝 閱讀(1111) 評論(0)  編輯  收藏 所屬分類: Linux

    主站蜘蛛池模板: 亚洲精品狼友在线播放| 免费一级毛片无毒不卡| 好猛好深好爽好硬免费视频| 久草福利资源网站免费| 麻豆国产精品入口免费观看| 亚洲精品无码久久久久| 亚洲AV无码久久久久网站蜜桃| 人成午夜免费大片在线观看| 1000部羞羞禁止免费观看视频| 免费无码成人AV片在线在线播放| 国产AV无码专区亚洲AV手机麻豆| 亚洲综合一区二区| 一区二区三区免费精品视频| 99久久99这里只有免费费精品| 亚洲视频在线精品| 亚洲欧美成人av在线观看| 中国videos性高清免费| 免费黄色网址入口| 精品亚洲麻豆1区2区3区| 日本精品久久久久久久久免费| 在线观看H网址免费入口| 亚洲精品国产精品乱码不卡√| 国产精品亚洲片在线花蝴蝶| 91香焦国产线观看看免费| 亚洲一区二区三区在线视频| 在线综合亚洲欧洲综合网站| 99爱免费观看视频在线| 亚洲无码视频在线| 色欲aⅴ亚洲情无码AV| 美女被cao免费看在线看网站| 亚洲∧v久久久无码精品| 一级做受视频免费是看美女| 黄网址在线永久免费观看 | 四虎影视久久久免费观看| 91网站免费观看| 亚洲AV日韩AV永久无码绿巨人| 国产成人无码精品久久久免费| 日韩免费福利视频| 亚洲成AV人片高潮喷水| 免费观看男人免费桶女人视频 | 亚洲AⅤ视频一区二区三区 |