shell中字符串操作【转】
转自: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中字符串操作【转】的更多相关文章
- Shell中字符串、数值的比较
原文:http://apps.hi.baidu.com/share/detail/31263915 在shell中字符串与数值的比较方法是不同的,要注意区分 整数比较: -eq 等于 ...
- shell脚本—— 字符串操作(长度,查找,替换)
表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有 ...
- Python中字符串操作
#Python字符串操作 '''1.复制字符串''' #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' pri ...
- linux shell中读写操作mysql数据库
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
- Python中字符串操作函数string.split('str1')和string.join(ls)
Python中的字符串操作函数split 和 join能够实现字符串和列表之间的简单转换, 使用 .split()可以将字符串中特定部分以多个字符的形式,存储成列表 def split(self, * ...
- python中字符串操作--截取,查找,替换
python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...
- 在shell 中字符串,文件,数字的比较
hadoop fs -test -e /path/exist ] ;then echo 'exist' else echo 'Error! path is not exist' fi 在shell中如 ...
- Shell中字符串的切割、拼接、比较、替换
[截取] 一.Linux shell 截取字符变量的前8位,有方法如下: expr substr “$a” 1 8 : 二.按指定的字符串截取 第一种方法: ${varible##*string} # ...
- R中字符串操作
简介 Stringr中包含3个主要的函数族 字符操作 空格处理 模式匹配 常用函数 在平常的数据分析工作中,经常要用到如下的函数 函数 操作 str_length() 获取字符串长度 str_sub( ...
随机推荐
- flutter 单例
flutter中的单例 class DataSave{ factory DataSave() => shared(); static DataSave _instance; DataSave._ ...
- flutter 打包
iOS打包 iOS打包需要注意一下一些设置 info.plist 设置ATS.白名单.字符串等等 Assets.xcassets 替换icon,替换LaunchImage中内容 注意LaunchIma ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_2_02 微服务核心基础讲解
笔记 2.微服务核心基础讲解 简介:讲解微服务核心知识 :网关.服务发现注册.配置中心.链路追踪.负载均衡器.熔断 1.网关:路由转发 + 过滤器 ...
- 七十三:flask信号之信号机制和使用场景
若安装flask是未默认安装blinker,则pip install blinker 使用信号分为3步,第一是定义一个信号,第二是监听一个信号,第三是发送一个信号 1.定义信号:定义信号需要使用到bl ...
- debian中安装gcc make
ubuntu debian 可以直接 apt-get install gcc automake autoconf libtool make
- C# Timespan Tostring 时分秒格式
timeSpan.ToString(@"hh\:mm\:ss");
- ExtJs6.2环境配置
http://extjs.org.cn/node/831 注意环境变量就是把 创建的项目文件放在C盘中
- ubuntu中配置jdk1.8
方法/步骤 1 首先,百度搜索jdk,选择第一个,网站是Oracle Jdk.点击进去 步骤阅读 2 点击Download,到官网下载linux版本的jdk.选择自己对应的操作系统及32或64位版 ...
- 如何在google colab加载kaggle数据
参考https://medium.com/@yvettewu.dw/tutorial-kaggle-api-google-colaboratory-1a054a382de0 从本地上传到colab上十 ...
- Python学习之认知(二)
第二章(二) 2.1.5 变量 变量:将运算的中间结果暂存到内存,以便后续程序调⽤. 变量的命名规则: 1.变量由字母, 数字,下划线搭配组合⽽成 2.不可以⽤数字开头,更不能是全数字 ...