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
时间: 2024-10-09 17:51:23

Shell字符串截取的相关文章

shell ---- 字符串截取方法归纳

SHELL --- 字符串截取 1.按指定的字符串截取(4种) ${varible##*string}  # 从左向右截取最后一个string后的字符串   <即 删除左边字符,保留右边字符> ${varible#*string}   # 从左向右截取 第一个string后的字符串     <即 删除左边字符,保留右边字符> ${varible%%string*}  # 从右向左截取最后一个string后的字符串   <即 删除右边字符,保留左边字符> ${varibl

shell字符串截取总结

shell中截取字符串的方法有很多中,本人对其中几种常用的进行整理总结. 0x01.grep 在文件中搜寻字符串匹配的行并输出 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep [选项][指定字串][文件] -i 不区分大小写 -v 排除指定字串 -c:只输出匹配行的计数. -n:显示匹配行及 行号. -

Linux shell字符串截取与拼接

一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.hao.com/123.htm 1  # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.hao.com/123.htm . 2  ## 号截取,删除左边字符,保留右边字符. echo ${var##*/} ##*/ 表示从左边开始删除最后(最

Shell字符串截取(非常详细)

Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取. 从指定位置开始截取 这种方式需要两个参数:除了指定起始位置,还需要截取长度,才能最终确定要截取的字符串. 既然需要指定起始位置,那么就涉及到计数方向的问题,到底是从字符串左边开始计数,还是从字符串右边开始计数.答案是 Shell 同时支持两种计数方式. 1) 从字符串左边开始计数 如果想从字符串的左边开始计数,那么截取字符串的具体格式如下: ${string: start :length} 其中,stri

shell字符串截取之cut

cut命令是shell下一个比较强大的工具,它是以每一行为一个处理对象的,可以对一行字符串进行多种模式匹配的剪切操作,也可以对一个排列整齐的文本进行操作,下面我们就来说说cut这个命令吧: cut命令主要有3个定位方法: (1)对字节的定位,用 -b 选项 (2)对字符的定位,用 -c 选项 ( 3 ) 域,用选型 -f 下面我们来看看具体的实现: 我们来一一说一下上面的现象: 我们先用pwd命令看一下我们的当前的路径.然后我们想提取当前路径这个字符串的第4个字节,就用上图所示的这条命令: pw

Shell字符串截取——获取oracle group名字

业务背景,在执行oracle文件时,需要授权给相应文件,一边我们用chown -Roracle:oraclegroup xxx,不同服务器oraclegroup名字不相同,怎么样获取呢? 方法:首先,我们可以通过命令groups oracle 获取oraclegroups,格式如下: oracle : oinstall dba 怎么样获取group 名字(oinstall)? 提供如下方法1:利用awk 获取第三个字符串 oraclegroup=`groups oracle|grep -v gr

linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )

在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有被声明, 或者其值为空, 那么就以$

shell下的字符串截取方法

一.Linux shell截取字符串的前几位,例截取前8位: 方法如下:下面a=1234sterrerwrwretw 1.expr substr "$a" 1 8 2.echo $a|cut -c1-8 3..echo $a|dd bs=1 count=8 二.按指定字符串截取 1.第一种方法: 1> ${val##*string} (双#*截取) 从左向右截取最后一个string后的字符串 例:a=123stringrwtw134string456 2>${varible

shell中截取字符串的方法总结

shell中截取字符串的方法有很多种, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} 上面4种可以用来进行缺省值的替换. ${#parameter} 上面这种可以获得字符串的长度. ${parameter%word} 最小限度从后面截取word ${parameter%%word} 最大限度从后面截取word ${parameter#word}