shell中字符串操作【转】

简介:

转自:http://blog.chinaunix.net/uid-29091195-id-3974751.html

我们所遇到的编程语言中(汇编除外)都少不了字符串处理函数吧,
当然shell编程也不例外咯,那么下面我们一起来看下shell中字符串
处理的相关操作吧。大概下面的字符串操作可以分为两种类型,一种
属于变量替换,另一种属于继承unix expr命令吧!
  

复制代码
  
1、测试字符串长度

    ${#string}
    expr length $string
    expr "$string" : '.*'
    例:
        #!/bin/bash
        str="asfd"
        echo "${#str}"
        a=expr length $str
        echo "a=$a"
        a=0
        a=`expr "$str" : '.*'`
        echo "a=$a"

2、匹配字符串开头的子串长度
    expr match "$string" '$substring'
    $substring是一个正则表达式.
    expr "$string" : '$substring'
    $substring是一个正则表达式.
    例:
        #!/bin/bash
        str=abcABC123ABCabc
        echo `expr match "$str" 'abc[A-Z]*.2'`     # 8
        echo `expr "$str" : 'abc[A-Z]*.2'`          # 8

3、索引
    expr index $string $substring
    在字符串$string中所匹配到的$substring第一次所出现的位置.
    例:
        #!/bin/bash
        str=abcABC123ABCabc
        echo `expr index "$str" C`     # 6     C 字符的位置.
        echo `expr index "$str" c`     # 3
        

4、提取子串
    ${string:position}
    在$string中从位置$position开始提取子串。
    如果$string是"*"或者"@", 那么将会提取从位置$position开始的位置参数. [1]
    ${string:position:length}
    在$string中从位置$position开始提取$length长度的子串.
    例:
        #!/bin/bash
        str="abcABC123ABCabc"

        echo ${str:0}            #输出abcABC123ABCabc
        echo ${str:3}            #输出ABC123ABCabc 
        echo ${str:6:3}            #输出123

5、子串削除
    ${string#substring}
    从$string的开头位置截掉最短匹配的$substring.
    ${string##substring}
    从$string的开头位置截掉最长匹配的$substring.
    例:
        #!/bin/bash
        str="abcABC123ABCabc"

        echo ${str#a*C}            #输出123ABCabc
        echo ${str##a*C}        #输出abc
        echo ${str##a*1}        #输出23ABCabc
    
    ${string%substring}
    从$string的结尾位置截掉最短匹配的$substring.
    ${string%%substring}
    从$string的结尾位置截掉最长匹配的$substring.
    例:
        #!/bin/bash
        str=abcABC123ABCabc

        echo ${str%b*c}     #输出 abcABC123ABCa        
        echo ${str%%b*c}     #输出 a 

6、子串替换
    ${string/substring/replacement}
    使用$replacement来替换第一个匹配的$substring.
    ${string//substring/replacement}
    使用$replacement来替换所有匹配的$substring.
    ${string/%substring/replacement}
    如果$substring匹配$string的结尾部分, 那么就用$replacement来替换$substring.
    ${string/#substring/replacement}
    如果$substring匹配$string的开头部分, 那么就用$replacement来替换$substring.
    例:
        #!/bin/bash
        str="abcABC123ABCabc"

        echo ${str/ABC/&&&}        #输出 abc&&&123ABCabc
        echo ${str//ABC/&&&&}    #输出 abc&&&&123&&&&abc
        echo ${str/%abc/&&&}    #输出 abcABC123ABC&&&
        echo ${str/#abc/&&&}     #输出 &&&ABC123ABCabc
复制代码

 













本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/5681899.html,如需转载请自行联系原作者

相关文章
|
1月前
|
Shell Linux C语言
【Shell 命令集合 文档编辑 】Linux 递归搜索指定字符串 rgrep命令使用指南
【Shell 命令集合 文档编辑 】Linux 递归搜索指定字符串 rgrep命令使用指南
17 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 文档编辑】Linux 在文件中查找指定的字符串 fgrep命令使用指南
【Shell 命令集合 文档编辑】Linux 在文件中查找指定的字符串 fgrep命令使用指南
39 2
|
8月前
|
Shell
Shell 字符串操作(截取、替换、去头、去尾)
Shell 字符串操作(截取、替换、去头、去尾)
371 0
|
3月前
|
Shell Linux Perl
Shell 编程快速入门 之 字符串
Shell 编程快速入门 之 字符串
63 0
Shell 编程快速入门 之 字符串
|
8月前
|
运维 Shell Python
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(一)
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)
89 0
|
4月前
|
Shell 程序员
Shell字符串截取的实现方法
Shell字符串截取的实现方法
41 0
|
5月前
|
存储 编解码 Shell
shell对字符串转码GBK
shell对字符串转码GBK
|
7月前
|
Shell
Shell脚本中字符串的一些常用操作
Shell脚本中字符串的一些常用操作,记录以备日常查阅。
61 0
|
8月前
|
运维 Shell Perl
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(二)
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(二)
92 0
|
8月前
|
Shell
Shell 字符串比较(是否为空、等于、不等于)
Shell 字符串比较(是否为空、等于、不等于)
150 0