Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11606
  • 博文数量: 3
  • 博客积分: 71
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-07 11:43
文章分类
文章存档

2011年(3)

我的朋友
最近访客

分类: 系统运维

2011-07-07 16:38:04

 

{变量#*/}  去掉变量里从左边(#在$号的左边)从左边算起到第一个/(包括/)的字符串

#在$号的左边,顺序是从左边算起,拿掉的是指定的字符/左边的字符,一个#号是从左往右算起第一个指定的字符/,两个##是从左往右算最后一个你指定的字符/

aa=aas/opt/foundir/csmail/mta/aas.test.bon.txt

echo $aa
aas/opt/foundir/csmail/mta/aas.test.bon.txt

[root@localhost sbin]# echo $aa && echo ${aa#*/}
aas/opt/foundir/csmail/mta/aas.test.bon.txt
opt/foundir/csmail/mta/aas.test.bon.txt      (aas/去掉了)

{变量##*/} 去掉变量 从左边算起 最后一个/.包括最后一个/的字符串

[root@localhost sbin]# echo $aa && echo ${aa##*/}
aas/opt/foundir/csmail/mta/aas.test.bon.txt
aas.test.bon.txt      (变量里最后一个/前面的字符串都去掉了,包括最后一个/)

其中#*,##*是替换参数,后面的/是可以自定的,

[root@localhost sbin]# echo $aa && echo ${aa##*a}
aas/opt/foundir/csmail/mta/aas.test.bon.txt
s.test.bon.txt

也可以换成其它的字符,这里去掉的是左边的字符,和你指定的字符

[root@localhost sbin]# echo $aa && echo ${aa}
aas/opt/foundir/csmail/mta/aas.test.bon.txt
aas/opt/foundir/csmail/mta/aas.test.bon.txt

前后是一样的

 

%在$号的右边,顺序是从右边算起,拿掉的是指定的字符/右边的字符,一个百分号是从右往左算起第一个指定的字符/,两个%%是从右往左算最后一个你指定的字符/

组合方式:${aa%/*},${aa%%/*}   >>>testing

[root@localhost sbin]# echo $aa && echo ${aa%/*} && echo ${aa%%/*}
aas/opt/foundir/csmail/mta/aas.test.bon.txt
aas/opt/foundir/csmail/mta
aas

[root@localhost sbin]# echo $aa && echo ${aa%.*} && echo ${aa%%.*}
aas/opt/foundir/csmail/mta/aas.test.bon.txt
aas/opt/foundir/csmail/mta/aas.test.bon
aas/opt/foundir/csmail/mta/aas

测试完成

 

[root@localhost sbin]# echo $aa && echo ${aa/.txt/.cpp}
aas/opt/foundir/csmail/mta/aas.test.bon.txt.txt.txt.txt
aas/opt/foundir/csmail/mta/aas.test.bon.cpp.txt.txt.txt

${aa/.txt/.cpp}只替换了一个txt

[root@localhost sbin]# echo $aa && echo ${aa//.txt/.cpp}
aas/opt/foundir/csmail/mta/aas.test.bon.txt.txt.txt.txt
aas/opt/foundir/csmail/mta/aas.test.bon.cpp.cpp.cpp.cpp

后面使用的两个//,这样变成了替换所有的txt

[root@localhost sbin]# echo $aa && echo ${aa/%.txt/.cpp} 
aas/opt/foundir/csmail/mta/aas.test.bon.txt.txt.txt.txt
aas/opt/foundir/csmail/mta/aas.test.bon.txt.txt.txt.cpp

这句是替换的最后一个.txt.,,默认是第一个.txt

[root@localhost sbin]# unset aa

阅读(1156) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:新开一个google博客,测试一下

给主人留下些什么吧!~~