每一种语言都有他独自的字符串操作方法,shell也一样,下面以以例子的方式,简单介绍常用方法。

1,取得字符串长度

  1. string=abc12342341          //等号二边不要有空格
    echo ${#string} //结果11
    expr length $string //结果11
    expr "$string" : ".*" //结果11 分号二边要有空格,这里的:根match的用法差不多

2,字符串所在位置

  1. expr index $string ''    //结果4 字符串对应的下标是从0开始的  

这个方法让我想起来了js的indexOf,各种语言对字符串的操作方法大方向都差不多,如果有语言基础的话,学习shell会很快的。

3,从字符串开头到子串的最大长度

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

个人觉得这个函数的用处不大,为什么要从开头开始呢。

4,字符串截取

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

上面的方法让我想起了,php的substr函数,后面截取的规则是一样的。

5,匹配显示内容

  1. //例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,截取不匹配的内容

  1. echo ${string#a*}     //42341  从$string左边开始,去掉最短匹配子串
    echo ${string#c*} //abc12342341 这样什么也没有匹配到
    echo ${string#*c1*} //42341 从$string左边开始,去掉最短匹配子串
    echo ${string##a*} //41 从$string左边开始,去掉最长匹配子串
    echo ${string%*} //abc12342 从$string右边开始,去掉最短匹配子串
    echo ${string%%*} //abc12 从$string右边开始,去掉最长匹配子串

这里要注意,必须从字符串的第一个字符开始,或者从最后一个开始,

7,匹配并且替换

  1. echo ${string//bb}   //abc1bb42341  替换一次
    echo ${string//23/bb} //abc1bb4bb41 双斜杠替换所有匹配
    echo ${string/#abc/bb} //bb12342341 #以什么开头来匹配,根php中的^有点像
    echo ${string/%/bb} //abc123423bb %以什么结尾来匹配,根php中的$有点像

转自: http://blog.51yip.com/shell/1080.html

[转] shell字符串操作方法,以及实例的更多相关文章

  1. PowerShell与Unix Shell对比:八大实例

    PowerShell与Unix Shell对比:八大实例 本文将从八个实例对比PowerShell和Unix Shell,通常是Linux Bourne Shell(包括sh.ksh和bash等).二 ...

  2. Python 字符串操作方法大全

    Python 字符串操作方法大全 1.去空格及特殊符号复制代码代码如下:s.strip().lstrip().rstrip(',') 2.复制字符串复制代码代码如下:#strcpy(sStr1,sSt ...

  3. MATLAB的PLOT函数线型设置及横坐标为字符串的代码实例

    2.横坐标为字符串的代码实例 cell={‘PLS’,’SVM’,’RF’,’NNET’,’NB’,’PLR’,’C5.0′,’PDA’,’KNN’,’GLM’,’BCT’};%分类方法yData=[ ...

  4. linux shell 字符串操作(长度,查找,替换)详解

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

  5. Shell 字符串比较

    转自网络 Shell字符串比较 收藏 Shell 中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等. 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. --- ...

  6. shell字符串操作详解

    shell字符串操作详解的相关资料. 1.shell变量声明的判断  表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...

  7. 【转】shell字符串截取

    shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr( ...

  8. shell字符串的用法

    shell字符串的用法 注意:shell4.2和shell4.1会有差别,较低版本的shell可能不支持某些功能 获取字符串长度:${#string} 获取子串: 注:(左边的第一个字符是用 0 表示 ...

  9. Linux脚本shell字符串处理

    Linux脚本shell字符串处理,基本都有了,看着搜吧 TLDP教堂 shell中if条件字符串.数字比对,[[ ]]和[ ]区别 Linux 之 shell 比较运算符 Linux Shell编程 ...

随机推荐

  1. SOA资料

    实施: 基于J2EE体系架构搭建符合SOA架构的运营管理平台 成功经验: 携程旅行网在SOA架构方面的探索 SOA在互联网系统中的应用

  2. [Java] SSH框架笔记_S2SH整合步骤

    http://tech.ddvip.com/2009-09/1253783051134206.html http://www.blogjava.net/liu0909/archive/2009/07/ ...

  3. [Java,JavaEE] 最常用的Java库一览

    引用自:http://www.importnew.com/7530.html 本文由 ImportNew - 邢 敏 翻译自 programcreek.欢迎加入Java小组.转载请参见文章末尾的要求. ...

  4. hadoop群集安装中碰到的问题

    在hadoop群集安装结束后,进行格式测试出现问题如下 格式化 cd /data/hadoop/bin ./hdfs namenode -format 15/01/21 05:21:17 WARN f ...

  5. 51nod B君的圆锥(数学)

    题目链接: B君的圆锥 基准时间限制:1 秒 空间限制:131072 KB  B君要用一个表面积为S的圆锥将白山云包起来.   B君希望包住的白山云体积尽量大,B君想知道体积最大可以是多少.   注意 ...

  6. poj 1390 动态规划

    思路: 黑书的例题 #include<iostream> #include<cstring> #include<algorithm> #include<cma ...

  7. oc中的分类/协议/属性

    1.分类:当我们想给某个类加一些方法时,如果不想通过继承这个类来实现,可以通过分类给这个类加一些行为,这个过程与继承相比更加轻量化. @interface NSString (SubClass) -( ...

  8. Linq To Csv 实例简说

    http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library 详细源代码在这里 https://github.com/mperdeck/L ...

  9. HTML5移动开发中的meta与link

    meta HTML5移动开发中的一些webkit专属头部标签,能够帮助浏览器更好的解析HTML代码,从而为HTML5移动开发提供更好的前端表现与体验 viewport网页缩放 1 <meta n ...

  10. Ajax请求ashx 返回 json 格式数据常见问题

    问题:ashx 返回的字符串json格式,在前台ajax自动解析失败. 问题分析:经过排查,发现是拼接json时出现” ’  “单引号,jquery无法解析,用” “ “双引号才可以.例如: stri ...