Shell 字符串处理
字符串处理方式
- 计算字符串长度
- 获取子串在字符串中的索引位置
- 计算子串长度
- 抽取(截取)字串
1、计算字符串长度,有两种方式
$ ${#string}
$ expr length "$string" // 如果 string 里面包含空格,则 $string 加上双引号,建议一直加上
注意:mac没有 expr命令,xshell登陆 linux服务器可以执行 expr命令
例1:
$ var="java python golang kafka"
$ len=${#var}
$ echo len
打印结果:24
$ len=`expr length "$var"` // 这里要用反引号 ` ` 。
$ echo $len
打印结果:24
2、获取子串在字符串中的索引位置(本质上是 将子串拆分成很多单个的字符,然后看哪个字符最先在字符串中出现,则返回这个字符的索引位置)
$ expr index $string $substring
例2:
$ var="quickstart is a app"
$ ind=`expr index "$var" start`
$ echo $ind
打印结果:6 // 下标从 1 开始数
$ ind=`expr index "$var" uniq`
$ echo $ind
打印结果:1 // 'q' 这个字符最先出现在字符串中,并且位置是 1
3、获取子串的长度
$ expr match $string substr
例3:
$ var="quickstart is a app"
$ sub_len=`expr match "$var" app` // 需要从头匹配,并且匹配成功,否则返回 0
$ echo $sub_len
打印结果:0
$ sub_len=`expr match "$var" quic` // 正常匹配
$ echo $sub_len
打印结果:4
$ sub_len=`expr match "$var" qui.*` // 获取整个字符串的长度
$ echo $sub_len
打印结果:19
$ sub_len=`expr match "$var" quik` // 匹配失败
$ echo $sub_len
打印结果:0
4、抽取子串,五种方式
$ ${string:position} // 从 string 的 position 开始
$ ${string:position:length} // 从 string 的 position 开始,取 length 个长度的字符
$ ${string: -position} // 从右边开始匹配,注意":" 和 "-" 之间有空格
$ ${string:(position)} // 从左边开始匹配
$ expr substr $string $position $length // 从 position 开始,匹配长度为length
例4:
$ var="java python golang kafka"
$ substr1=${var:3} // 下标从 0 开始,下标为 3 的字符刚好是 a
$ echo $substr1
打印结果:a python golang kafka
$ substr2=${var:3:5}
$ echo $substr2
打印结果:a pyt
$ substr3=${var: -5} // 最后一个字符为 -1。 等价于:substr3=${var:(-5)}
$ echo $substr3
打印结果:kafka
$ substr3_1=${var: -5:2} // 扩展一个
$ echo $substr3_1
打印结果:ka
$ substr4=${var:(5)} // 从左边第5个开始取
$ echo $substr4
打印结果:python golang kafka
$ substr5=`expr substr "$var" 10 5` // expr 下标从 1 开始,然后从第 10 个开始取
$ echo $substr5
打印结果:on go
注意:expr 方式下标从 1 开始; ${ }方式下标从 0 开始
Shell 字符串处理的更多相关文章
- linux shell 字符串操作(长度,查找,替换)详解
linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...
- Shell 字符串比较
转自网络 Shell字符串比较 收藏 Shell 中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等. 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. --- ...
- shell字符串操作详解
shell字符串操作详解的相关资料. 1.shell变量声明的判断 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...
- 【转】shell字符串截取
shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr( ...
- shell字符串的用法
shell字符串的用法 注意:shell4.2和shell4.1会有差别,较低版本的shell可能不支持某些功能 获取字符串长度:${#string} 获取子串: 注:(左边的第一个字符是用 0 表示 ...
- Linux脚本shell字符串处理
Linux脚本shell字符串处理,基本都有了,看着搜吧 TLDP教堂 shell中if条件字符串.数字比对,[[ ]]和[ ]区别 Linux 之 shell 比较运算符 Linux Shell编程 ...
- 【Linux】shell字符串分割、数组访问、条件判断
参考资料: shell字符串分割再循环:http://www.shangxueba.com/jingyan/1633455.html linux shell中 if else以及大于.小于.等于逻辑表 ...
- shell 字符串中定位字符位置 获取字符位置
linux shell 字符串操作(长度,查找,替换)详解 该博文中描述的如下两个字符串操作, ${string:position} #在$string中, 从位置$position开始提取子串 ${ ...
- Shell字符串操作
@1:子串削除 ${string#substring} 从$string 的开头位置截掉最短匹配的$substring. ${string##substring} 从$string 的开头位置截掉最长 ...
- Linux Shell系列教程之(五)Shell字符串
本文是Linux Shell系列教程的第(五)篇,更多shell教程请看:Linux Shell系列教程 字符串是Shell编程中最常用最有用的数据类型,今天,Linux大学网就为大家介绍一下在She ...
随机推荐
- linux与windows实现文件交互
Linux--用SecureCRT来上传和下载文件 SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文 ...
- 如何增加亚马逊listing多个类目节点
流量是电商销售的必要因素,可以说,任何成功的电商平台都离不开流量.亚马逊listing优化做得好,不仅能提高产品的曝光率,还能提升转换率,而好的类目可以吸引大的流量.帮你快速爬升. 首先我们来了解一下 ...
- session和cookie的简介
Session(时域)在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session ...
- Robin Hood CodeForces - 672D (二分)
大意: 给定数组$a$, 每次操作使最大元素减小1最小元素增大1, 求k次操作后最大值与最小值的差. 二分出k次操作后最大值的最小值以及最小值的最大值, 若和能平分答案即为$max(0,R-L)$, ...
- feign调用超时
Feign调用超时 feign调用超时 默认feign调用超时是1秒,断点调试是否调用成功肯定超时 feign.hystrix.enabled=true #feign调用默认是1000毫秒=1秒 ad ...
- vue-lazyload懒加载插件的使用
vue-lazyload懒加载插件的使用其实很简单,不想vue-loader官网用法写的那么简单.下面代码演示: 1.安装插件 npm install vue-lazyload --save 2. ...
- nginx 代理 https 后,应用变成 http
需求:nginx 代理 https,后面的 tomcat 处理 http 请求,sso 的客户端,重定向时需要带上 target,而这个 target 默认是 tomcat 的 http,现在需要把这 ...
- VNPY - windows 安装踩坑记录
twisted requires PyHamcrest>=, which is not ins grin requires argparse>=1.1, which is not inst ...
- Django 之 cookie和session
一. Cookie 1.Cookie的由来 因为HTTP协议是无状态的,无状态的意思就是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,也不会受前后请求响应情况直接影响.简 ...
- PROJ.4学习——初识PROJ
PROJ.4介绍——初始认识 前言 PROJ是一个通用的坐标转换软件,它将地理空间坐标从一个坐标系转换为另一个坐标系.这包括地图投影和大地坐标变换. PROJ包含命令行应用程序,可以方便地从文本文件或 ...