shell中的字符串操作
SHELL字符串操作
bash Shell提供了多种字符串处理的命令:
- awk命令
- expr命令
字符串长度
- ${#..}
- expr length
- awk的length(s)
实例:
string=”hello world”
${#string}
expr length “$string”
注意:双引號是必须的。由于字符串有空格
匹配子串
格式:expr match $string $substring
作用:在string的开头匹配substring,返回匹配到的长度,在string开头匹配不到substring则返回0,substring能够是正則表達式
string=”welcome to our world”
| 命令 | 返回值 |
|---|---|
| expr match “$string” w.* | 20 |
| expr match “$string” ou.* | 0 |
公共字符的索引
格式:expr index $string $sunstring
作用:在字符串string上匹配substring中字符第一次出现的字符
string=”welcome to our world”
| 命令 | 返回值 |
|---|---|
| expr index “$string” our | 5 |
| expr index “$string” d | 20 |
| expr index “$string” s | 0 |
执行发现。expr index的功能是寻找两个串之间的第一个公共字符
截取子串
- 从左截取
- ${string:position}
- ${string:position:length}
- 从右截取
- ${string: -position}(冒号后面有一个空格)
- ${string:(position)}
- ${string: -position:length}
- ${string:(position):length}
expr substr
格式:expr substr $string $position $length
与${}的差别:${}的position从0開始给string标号;expr sutstr的position从1開始给string标号
string=”welcome to our world”
| 命令 | 返回值 |
|---|---|
| echo ${string:1:8} | elcome t |
| expr substr “$string” 2 8 | elcome t |
正則表達式截取子串
使用正則表達式仅仅能抽取string开头处或结尾处的子串。
- expr match $string ‘\($substring\)’
- expr $string : ‘\($substring\)’
| 命令 | 返回值 |
|---|---|
| expr match “$another” “[0-9]*” | 8 |
| expr match “$another” “\([0-9]*\)” | 20091114 |
| expr “$another” : “\([0-9]*\)” | 20091114 |
注意:冒号两側有空格
删除子串
- ${string#substring}
删除string开头处与substring匹配的最短子串 - ${string##substring}
删除string开头处与substring匹配的最长子串 - ${string%substring}
删除string结尾处与substring匹配的最短子串 - ${string%%substring}
- 删除string结尾处与substring匹配的最长子串
substring并不是正則表達式
20091114 Reading Hadoop
| 命令 | 结果 |
|---|---|
| echo “${another#2*1}” | 114 Reading Hadoop |
| echo “${another##2*1}” | 4 Reading Hadoop |
| echo “${another%a*p}” | 20091114 Reading H |
| echo “${another%%a*p}” | 20091114 Re |
替换子串
- ${string/substring/replacement}
仅替换第一次与substring相匹配的子串 - ${string//substring/replacement}
替换全部与substring相匹配的子串 - ${string/#substring/replacement}
替换string开头处与substring相匹配的子串 - ${string/%substring/replacement}
替换string结尾处与substring相匹配的子串
string=”20001020year20050509month”
| 命令 | 结果 |
|---|---|
| echo ${string/200/201} | 20101020year20050509month |
| echo ${string/200/201} | 20101020year20150509month |
| echo ${string/r*h/} | 20001020yea |
| echo ${string/#2000/2010} | 20101020year20050509month |
| echo ${string/%month/MONTH} | 20001020year20050509MONTH |
shell中的字符串操作的更多相关文章
- shell中的字符串操作和数学运算
字符串操作 变量赋值: 说明:变量值可以用单引号.双引号.或者不加任何引号来赋值给变量 变量名="变量值" 变量名='变量值' 变量名=变量值 例如:str="hel ...
- shell中的字符串操作——字符串的切割
default.yaml {default_baseurl: 'http://10.113.10.68:8082'} test.sh a=`cat default.yaml` t=":&qu ...
- linux shell学习(字符串操作)--01
http://blog.csdn.net/shuanghujushi/article/details/51298672 在bash shell的使用过程中,经常会遇到一些字符串string的操作,下面 ...
- (转)Shell中获取字符串长度的七种方法
Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...
- shell中截取字符串的方法总结
shell中截取字符串的方法有很多种, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...
- SQL点滴33—SQL中的字符串操作
原文:SQL点滴33-SQL中的字符串操作 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() ...
- Python中的字符串操作总结(Python3.6.1版本)
Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...
- Oracle中有关字符串操作的语法
Oracle中有关字符串操作的语法 Oracle提供了丰富的字符串函数 lpad()函数 lpad()函数用于左补全字符串.在某些情况下,预期的字符串为固定长度,而且格式统一,此时可以考虑使用lpad ...
- 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况
一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...
随机推荐
- redis和mySql的数据同步的解析
1.同步MySQL数据到Redis (1) 在redis数据库设置缓存时间,当该条数据缓存时间过期之后自动释放,去数据库进行重新查询,但这样的话,我们放在缓存中的数据对数据的一致性要求不是很高才能放入 ...
- python统计文本中每个单词出现的次数
.python统计文本中每个单词出现的次数: #coding=utf-8 __author__ = 'zcg' import collections import os with open('abc. ...
- 我的OI生涯番外篇
番外篇 转眼间我学oi已经一年了,可回头想想这一年来的收获也没有什么,大部分时间都荒废掉了. 下半年开学后,学物竞的王洋转来了我们电竞,虽然他之前是我的同班同学但也没怎么交流过. 这下我们又成为了oi ...
- luoguP4115 QTREE4 链分治
具体看$qzc$论文吧......陈年老物了...... 主要注意每个链头一棵线段树而不是一棵全局线段树 修改操作写完就是正确的,反而是初始化调了好一会...... 跑的还是很快的,有些地方没优化常数 ...
- [HNOI2008]玩具装箱TOY --- DP + 斜率优化 / 决策单调性
[HNOI2008]玩具装箱TOY 题目描述: P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京. 他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器 ...
- Unity UGUI之Button
创建Button后,会出现一个Image组件和一个Button组件,以及Button子节点Text(可以删除不影响功能) 其中Image的Image Type中有四个选项--Simple.Sliced ...
- JS 循环遍历json
第一 看看json的格式 { "employees": [ { "firstName":"Bill" , "lastName&q ...
- nodejs中间件拦截,express不登录无法进入后台页面
22.设置拦截 只有登录才能进入到后台页面,不登录无法进入 如果登陆成功, 写入session, 参数 uid uid=123dsfjksldfjsl 检测登陆, 请求中 session 是否包含 u ...
- Shell升级,/bin/bash版本号4.1到4.3
bash环境变量存在随意代码运行漏洞:"通过CGI请求方式能够导致远程代码运行,进而导致server被入侵.危害严重.且官方发布补丁也被绕过", [漏洞影响]: 1)bash受影响 ...
- 怎样教你牢记17个的Win7快捷键!
常规快捷键在开始使用Win7中神奇的快捷键加速我们的电脑操作之前,先给大家介绍几个从Win2000到现在一直通用的“资源管理器”快捷键,权当作热身吧!Win+E: 打开“资源管理器”.Win+R: 打 ...