Shell字符串截取
shell中截取字符串的方法有很多中,
${expression}一共有9种使用方法。
${parameter:-word}
${parameter:=word}
${parameter:?word}
${parameter:+word}
上面4种可以用来进行缺省值的替换。
${#parameter}
上面这种可以获得字符串的长度。
${parameter%word} 最小限度从后面截取word
${parameter%%word} 最大限度从后面截取word
${parameter#word} 最小限度从前面截取word
${parameter##word} 最大限度从前面截取word
上面4个就是用来截取字符串的方法了。
有了着四种用法就不必使用cut命令来截取字符串了
第一种又可以分为四种情况,下面一一介绍。 1、使用 # 号操作符。用途是从左边开始删除第一次出现子字符串即其左边字符,保留右边字符。用法为#*substr,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str#*//}
得到的结果为www.你的域名.com/cut-string.html,即删除从左边开始到第一个"//"及其左边所有字符2、使用 ## 号操作符。用途是从左边开始删除最后一次出现子字符串即其左边字符,保留右边字符。用法为##*substr,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str##*/}
得到的结果为cut-string.html,即删除最后出现的"/"及其左边所有字符
3、使用 % 号操作符。用途是从右边开始删除第一次出现子字符串即其右边字符,保留左边字符。用法为%substr*,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str%/*}
得到的结果为http://www.你的域名.com,即删除从右边开始到第一个"/"及其右边所有字符
4、使用 %% 号操作符。用途是从右边开始删除最后一次出现子字符串即其右边字符,保留左边字符。用法为%%substr*,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str%%/*}
得到的结果为http://www.你的域名.com,即删除从右边开始到最后一个"/"及其右边所有字符 第二种也分为四种,分别介绍如下:
1、从左边第几个字符开始以及字符的个数,用法为:start:len,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
2、从左边第几个字符开始一直到结束,用法为:start,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${var:7}
其中的 7 表示左边第8个字符开始
结果是:www.你的域名.com/cut-string.html
3、从右边第几个字符开始以及字符的个数,用法:0-start:len,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str:0-15:10}
其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:cut-string
3、从右边第几个字符开始一直到结束,用法:0-start,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str:0-4}
其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:html
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
本文转载自http://www.cnblogs.com/xwdreamer/p/3823463.html
Shell字符串截取的更多相关文章
- Linux 的shell 字符串截取很有用。有八种方法。
一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1 # 号截取,删除左边字符,保留右边字符. echo ${va ...
- 【转】shell字符串截取
shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr( ...
- Linux shell字符串截取与拼接
一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1 # 号截取,删除左边字符,保留右边字符. echo ${va ...
- Shell字符串截取处理文件路径
在生信处理流程中,从最初的fastq文件,经过分析处理后,会生成一堆的后续文件,如何在流程中合理的命名呢? 通常在批处理模式中,我们会得到多个样本*.fastq(或*.fq.*.fastq.gz.*. ...
- Linux - Shell - 字符串截取
概述 简述 字符串 截取 背景 之前因为要给文件 批量重命名, 做过字符串截取 当时做好了, 也说了要写点东西 结果忘了 现在又要尝试批量 重命名 才发现之前的东西已经忘了好多 要是当时把博客写下来, ...
- shell 字符串截取
${expression}一共有9种使用方法. ${parameter:-word},如果parameter为空,则用word的值做parameter的缺省值 ${parameter:=word},在 ...
- Linux Bash Shell字符串截取
#!/bin/bash#定义变量赋值时等号两边不能有空格,否则会报命令不存在 # 运行shell脚本两种方式 # 1.作为解释参数 /bin/sh test.sh ; 2.作为可执行文件 chmo ...
- Shell字符串截取(非常详细)
假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. 1 echo ${var#*//} 其中 var 是变量名,# 号是运算符, ...
- shell 字符串截取表达式
${var#str} 从左向右匹配,非贪婪匹配,截取并保留右边的内容 txt='123456abc123456' echo ${txt#*34} # 56abc123456 ${var##str} 从 ...
随机推荐
- jQuery修改后代、兄弟样式
<div> <div >1</div> <div class="one"> 2 <div>2_1 <div> ...
- Jquery select 选中项中自定义的值
给select 赋值,除了已有的value及text,新建一属性simple_name function GetDicOfficeList(dicType, sid) { $.ajax({ url: ...
- Spring对事务的处理
1.加入spring-jdbc.jar包 2.配置数据源 3.配置spring事务管理器,spring的事务出现在业务层. <bean id="dataSource" cla ...
- mysql linux备份shell
#!/bin/bash# export and backup the activity.sql mysqldump -uname -password activity --skip-lock-ta ...
- BroadcastReceiver的实例----基于Service的音乐播放器之二
该程序的后台Service会在播放状态发生改变时对外发送广播(广播将会激发前台Activity的BroadcastReceiver):它也会采用BroadcastReceiver监听来自前台Activ ...
- SQL查询表占用空间大小
SQL查询表占用空间大小. create table tmp (name varchar(50),rows int,reserved varchar(50),data varchar(50),inde ...
- [Js]高级运动
一.链式运动框架 1.他需要一个回调函数,在运动停止时,开始下一次运动(执行函数) 多物体运动框架改为如下: function startMove(obj,attr,iTarget,fn){ ... ...
- js基础之动画(一)
一.让div动起来 var oBtn = document.getElementById('btn1'); var timer='';//设置定时器 oBtn.onclick=function st ...
- UIKit-3347.44.2/UICollectionView.m:3443
Assertion failure in -[UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewC ...
- [rfc3261]sip - via header
在很多情况下,sip并非直达目标主机的,而是要经过很多中间节点服务器.在request消息中,via头域表示当前已走过的节点(每经过一个节点,添加一个via头):在response消息中,via头域表 ...