Chinaunix首页 | 论坛 | 博客
  • 博客访问: 489494
  • 博文数量: 140
  • 博客积分: 461
  • 博客等级: 下士
  • 技术积分: 878
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-28 10:06
文章分类

全部博文(140)

文章存档

2016年(1)

2015年(6)

2014年(20)

2013年(1)

2012年(16)

2011年(96)

分类: LINUX

2015-01-19 11:06:11

日常工作有时候需要对变量进行一些操作,比如截取,替换,删除等操作,有时会习惯性地使用awk, sed 或cut等命令来干这事,其实,bash的内置的变量操作就可以干这个事。下面说明一些常用的方法,以供温习:

这些操作需要使用 ${var} 这种变量的写法(用花括号)。

${#var} 输出 var的字符串长度

${var:pos:len} 你可以理解为变量的切片操作。如:

> var=0123456789
> echo ${var:2}
23456789
> echo ${var:2:2}
23
> echo ${var:2:3}
234
> echo ${var::1}
0
> echo ${var::-2}
01234567

${var#word} 或 ${var##word} 删除匹配word的前缀,#为最短匹配,##为最长匹配

${var%word} 或 ${var%%word} 删除匹配word的后缀,%为最短匹配,%%为最长匹配

> var=ababcdcd
> echo ${var#a*b}
abcdcd
> echo ${var##a*b}
cdcd
> echo ${var%c*d}
ababcd
> echo ${var%c*d}
ababcd
> echo ${var%%c*d}
abab

${var/pattern/replacement} 替换第一个匹配

${var//pattern/replacement} 替换所有的匹配

var=ababcdcd
> echo ${var/ab/01}
01abcdcd
> echo ${var//ab/01}
0101cdcd


阅读(783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~