当前位置:首页 > 尘凡 > 正文内容

shell字符串截取 (2010-10-18 19:14:10)(搬运自我的sina微博)

池边树下2个月前 (09-04)尘凡114360

比较常用得是awk,但好多时候其它方法更好用

按给定字符串截取(.)可任意,变量为(a)

${变量##*string}从左向右截取保留 最后一个string后的字符串
${变量#*string}从左向右截取保留  第一个string后的字符串
${变量%%string*}从右向左截取保留  最后一个string后的字符串
${变量%string*}从右向左截取保留  第一个string后的字符串
“*”是一个通配符

例子如下:
 a="mine.mv.avi"
 1.echo ${a##*.}  执行结果:avi
 2.echo ${a#*.}   执行结果:mv.avi
 3.echo ${a%%.*}  执行结果:mine
 4.echo ${a%.*}   执行结果:mine.mv

按字符串位数截取
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

按指定的字符串截取
上面带例子的是第一种方法。
还有一种方法:${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。
可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在 bash 中输入以下行:
a=abcdefg

echo ${a:0:5} 执行结果为:abcde
echo ${a:3:7} 执行结果为:defg
这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。

按照指定要求分割:
比如获取后缀名
ls -al | cut -d “.” -f2

awk和grep,cat,sed比较适合截取大段字符,这个以后再说

扫描二维码推送至手机访问。

版权声明:本文由满纸空言发布,如需转载请注明出处。

本文链接:http://mzky.cc/post/152.html

分享给朋友:

“shell字符串截取 (2010-10-18 19:14:10)(搬运自我的sina微博)” 的相关文章

systemctl启动耗时排行4年前 (2021-04-21)
keepalived+lvs配置4年前 (2021-05-12)
uos编译njmon3年前 (2021-07-21)
磁盘扩容3年前 (2021-08-27)
Go的cron定时库差异3年前 (2021-09-06)

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。