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

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

、测试字符串长度

    ${#string}
expr length $string
expr "$string" : '.*'
例:
#!/bin/bash
str="asfd"
echo "${#str}"
a=expr length $str
echo "a=$a"
a=
a=`expr "$str" : '.*'`
echo "a=$a" 、匹配字符串开头的子串长度
expr match "$string" '$substring'
$substring是一个正则表达式.
expr "$string" : '$substring'
$substring是一个正则表达式.
例:
#!/bin/bash
str=abcABC123ABCabc
echo `expr match "$str" 'abc[A-Z]*.2'` #
echo `expr "$str" : 'abc[A-Z]*.2'` # 、索引
expr index $string $substring
在字符串$string中所匹配到的$substring第一次所出现的位置.
例:
#!/bin/bash
str=abcABC123ABCabc
echo `expr index "$str" C` # C 字符的位置.
echo `expr index "$str" c` # 、提取子串
${string:position}
在$string中从位置$position开始提取子串。
如果$string是"*"或者"@", 那么将会提取从位置$position开始的位置参数. []
${string:position:length}
在$string中从位置$position开始提取$length长度的子串.
例:
#!/bin/bash
str="abcABC123ABCabc" echo ${str:} #输出abcABC123ABCabc
echo ${str:} #输出ABC123ABCabc
echo ${str::} #输出123 、子串削除
${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*} #输出23ABCabc ${string%substring}
从$string的结尾位置截掉最短匹配的$substring.
${string%%substring}
从$string的结尾位置截掉最长匹配的$substring.
例:
#!/bin/bash
str=abcABC123ABCabc echo ${str%b*c} #输出 abcABC123ABCa
echo ${str%%b*c} #输出 a 、子串替换
${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

shell中字符串操作【转】的更多相关文章

  1. Shell中字符串、数值的比较

    原文:http://apps.hi.baidu.com/share/detail/31263915 在shell中字符串与数值的比较方法是不同的,要注意区分 整数比较:    -eq       等于 ...

  2. shell脚本—— 字符串操作(长度,查找,替换)

    表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有 ...

  3. Python中字符串操作

    #Python字符串操作 '''1.复制字符串''' #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' pri ...

  4. linux shell中读写操作mysql数据库

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  5. Python中字符串操作函数string.split('str1')和string.join(ls)

    Python中的字符串操作函数split 和 join能够实现字符串和列表之间的简单转换, 使用 .split()可以将字符串中特定部分以多个字符的形式,存储成列表 def split(self, * ...

  6. python中字符串操作--截取,查找,替换

    python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...

  7. 在shell 中字符串,文件,数字的比较

    hadoop fs -test -e /path/exist ] ;then echo 'exist' else echo 'Error! path is not exist' fi 在shell中如 ...

  8. Shell中字符串的切割、拼接、比较、替换

    [截取] 一.Linux shell 截取字符变量的前8位,有方法如下: expr substr “$a” 1 8 : 二.按指定的字符串截取 第一种方法: ${varible##*string} # ...

  9. R中字符串操作

    简介 Stringr中包含3个主要的函数族 字符操作 空格处理 模式匹配 常用函数 在平常的数据分析工作中,经常要用到如下的函数 函数 操作 str_length() 获取字符串长度 str_sub( ...

随机推荐

  1. Python面向对象进阶和socket网络编程

    写在前面 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese: def __init__(self ...

  2. linux 基础 配置静态IP

    1.查看本机windows默认网关.DNS 2.配置linux 3.查询网络配置 4.xshell 登录 一 查看本机windows默认网关.DNS 二 配置linux(注意:默认网关.dns,必须跟 ...

  3. CL_GUI_FRONTEND_SERVICES 使用问题

    CL_GUI_FRONTEND_SERVICES(SAP操作Windows文件) 这个类下面的方法均为静态方法,引用的时候以=>来引用方法 注意:在执行CL_GUI_FRONTEND_SERVI ...

  4. C语言基础:递归函数,全局(局)变量

    #include <stdio.h>int factorial(int a); int Fibonacci(a);long Hanoi(a); void main(){ } 函数递归调用: ...

  5. convert.ToInt32和int.parse区别

    前者适合将object类类型转换成int类型 int.Parse适合将string类类型转换成int类型 1)这两个方法的最大不同是它们对null值的处理方法:Convert.ToInt32(null ...

  6. easyui datagrid checkbox复选框取消单击选中事件、初始全选全不选等问题解决

    系统业务需要,导入的列表数据默认全部选中,且不可取消选中行.全部店铺优惠券发放过后导入的数据全部清空.如图所示: 一.初始化页面默认全部选中“selectAll”,全部不选中“unselectAll” ...

  7. Git本地初始化并推送到远程仓库

    git常用命令 1.全局配置git用户名邮箱 git config --global user.name '你的名字' git config --global user.email '你的邮箱地址' ...

  8. 技术简历写这么写,才能得到BAT面试官们的青睐

    公众号[程序员江湖] 作者陆小凤,985 软件硕士,阿里 Java 研发工程师,在技术校园招聘.自学编程.计算机考研等方面有丰富经验和独到见解,目前致力于分享程序员干货和学习经验,同时热衷于分享作为程 ...

  9. linux环境jdk+tomcat搭建

    一.什么是Linux? 和Windows操作系统软件一样,Linux也是一个操作系统软件.但是和Windows不同的是,Linux是一套开放源代码程序的.并可以自由传播的类Unix操作系统软件(Uni ...

  10. 解决pip安装第三方包编码错误:UnicodeDecodeError: 'ascii' codec can't decode byte....

    .../python27/Lib/mimetypes.py 在 import之后添加下列内容 if sys.getdefaultencoding() != 'gbk': reload(sys) sys ...