当前位置: 澳门新濠3559 > 操作系统 > 正文

shell中截取字符串的方法有很多中

时间:2019-11-20 22:05来源:操作系统
#!/bin/bash shell中截取字符串的方法有很多中。shell中截取字符串的章程有数不胜数中,能够分成两大类。第意气风发种拿到一定的字符或字符串的右臂只怕左边的字字符串,java中得以完

#!/bin/bash

shell中截取字符串的方法有很多中。shell中截取字符串的章程有数不胜数中,能够分成两大类。第意气风发种拿到一定的字符或字符串的右臂只怕左边的字字符串,java中得以完毕内需先用indexOf来明确特定字符串的岗位,然后再用substring来得到结果;第三种恍若java中的substring

#概念变量赋值时等号两边不能够有空格,不然会报命令官样文章  

shell中截取字符串的艺术有无尽全中学,

# 运维shell脚本两种艺术
# 1、作为演讲参数 /bin/sh test.sh ;  2、作为可施行文件 chmod +x ./test.sh
blog_url=''
# 1、 #号截取,从左往右删除从0初始到第二个门户格外原则('//')部分,保留剩余部分
echo ${blog_url#*//}
#运转结果 如下  www.cnblogs.com/Bighua/p/7535900.html

${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个正是用来截取字符串的法子了。

#2、  ##号截取,从左往右删除从0起初到结尾四个相配原则('/')部分,保留剩余部分
echo ${blog_url##*/}
#运作结果如下  7535900.html

有了着多样用法就无需接纳cut命令来截取字符串了

#3、 %号截取,从右往左删除从#blog_url初叶到第三个相当原则('/')部分,保留剩余部分
echo ${blog_url%/*}
# 运转结果如下

第生龙活虎种又有啥不可分为几种意况,上面风流洒脱一介绍。

#4、 %%号截取,从右往左删除从#blog_url开端到最后三个特别原则('/')部分,保留剩余部分
echo ${blog_url%%/*}
# 运维结果如下 http:

1、使用 # 号操作符。用项是从侧面开头删除第二遍面世子字符串即其左侧字符,保留左侧字符。用法为#*substr,例如:

#5、从侧边第多少个起来截取多少个字符
echo ${blog_url:0:7}
# 运营结果如下 http://

str=''

#6、从左侧第多少个字符带头到结束
echo ${blog_url:7}
# 运转结果如下 www.cnblogs.com/Bighua/p/7535900.html

echo ${str#*//}

#7、从右侧起数第多少个字符为起源,从左往右截取多少个字符
echo ${blog_url:0-7:2}
# 运转结果如下 00

获得的结果为www.你的域名.com/cut-string.html,即除去从左侧伊始到第三个"//"及其侧面全体字符2、使用 ## 号操作符。用场是从右侧起首删除最终一回面世子字符串即其右手字符,保留侧边字符。用法为##*substr,例如:

#8、从右起第多少个字符带头为起源,向来到最终
echo ${blog_url:0-4}
# 运行结果 html 

str=''

echo ${str##*/}

获得的结果为cut-string.html,即除去最终出现的"/"及其左侧全部字符3、使用 % 号操作符。用项是从左边最初删除第二遍面皇世子字符串即其侧边字符,保留左手字符。用法为%substr*,例如:

str=''

echo ${str%/*}

赢得的结果为 %% 号操作符。用场是从侧面初始删除最后叁遍面皇太子字符串即其侧边字符,保留右边手字符。用法为%%substr*,例如:

str=''

echo ${str%%/*}

获取的结果为

1、从左边第几个字符起先以致字符的个数,用法为:start:len,比如:

str=''

echo ${var:0:5}

里头的 0 表示侧面第六个字符开端,5 表示字符的总个数。
结果是:http:2、从侧边第多少个字符开端向来到告竣,用法为:start,比如:

str=''

echo ${var:7}

里面包车型客车 7 表示侧边第8个字符开首
结果是:www.你的域名.com/cut-string.html3、从侧边第多少个字符起先以至字符的个数,用法:0-start:len,譬如:

str=''
echo ${str:0-15:10}

当中的 0-6 表示左侧算起第6个字符初叶,10 表示字符的个数。
结果是:cut-string3、从右侧第多少个字符初阶平昔到甘休,用法:0-start,譬如:

str=''
echo ${str:0-4}

此中的 0-6 表示侧面算起第6个字符初步,10 表示字符的个数。
结果是:html注:(左侧包车型地铁首先个字符是用 0 表示,左侧的率先个字符用 0-1 表示卡塔 尔(英语:State of Qatar)

网络其余参谋剧情

生龙活虎、Linux shell 截取字符变量的前8位,有艺术如下:
1.expr substr “$a” 1 8
2.echo $a|awk ‘{print substr(,1,8)}’
3.echo $a|cut -c1-8
4.echo $
5.expr $a : ‘(.).*’
6.echo $a|dd bs=1 count=8 2>/dev/null

二、按内定的字符串截取
1、第后生可畏种方法:
${varible##*string} 从左向右截取倒数string后的字符串
${varible#*string}从左向右截取第八个string后的字符串
${varible%%string*}从右向左截取最后三个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
“*”只是多个通配符可以不要

例子:
$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg

2、第三种艺术:${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。

能够依Wright定字符偏移和长短,使用另风姿浪漫种样式的变量扩大,来筛选特定子字符串。试着在 bash 中输入以下行:
$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga

这种情势的字符串截断非常便捷,只需用冒号分开来钦点初叶字符和子字符串长度。

三、依照内定要求分割:
比如说获取后缀名
ls -al | cut -d “.” -f2

...

编辑:操作系统 本文来源:shell中截取字符串的方法有很多中

关键词: