Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1572087
  • 博文数量: 289
  • 博客积分: 11086
  • 博客等级: 上将
  • 技术积分: 3291
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-22 17:06
个人简介

徐小玉的博客。

文章分类

全部博文(289)

文章存档

2023年(6)

2022年(1)

2021年(2)

2020年(9)

2019年(9)

2018年(6)

2017年(10)

2016年(10)

2014年(3)

2013年(4)

2011年(12)

2010年(16)

2009年(14)

2008年(119)

2007年(48)

2006年(20)

我的朋友

分类:

2008-11-06 16:31:47

1:  shell 中比较好用的获得字符串的两个函数是basename 和dirname .其中basename得到具体文件名(或目录中的最后那部分),另外的部分可以由dirname得到:
  > basename /r/sanyo.unx.sas.com/vol/vol5/u51/scnyam/meiplaypen/mei_shell
 mei_shell
  > dirname /r/sanyo.unx.sas.com/vol/vol5/u51/scnyam/meiplaypen/mei_shell
  /r/sanyo.unx.sas.com/vol/vol5/u51/scnyam/meiplaypen
2: 但是这种处理显然无法满足所有类型字符串的截取要求。 不过不用担心,bash本身有它截取字符串的简单方法:
   我们来看下面的例子:
   var=PeterPiPerPickedofPick   # PeterPiperPickedaPeckofPickledPepper   (the famsous and classic tongue twister, coudl you speak it correctly and fluently??)
   > echo ${var#*Pe}          
     terPiPerPickedofPick
    > echo ${var##*Pe}         
     rPickedofPick
 
    > echo ${var%Pi*}
    PeterPiPerPickedof
    > echo ${var%%Pi*}
    Peter
 
 看到了吗? #是从左侧替换 进行替换,%是从右侧。为什么呢? 因为键盘上的位置是:#$%  即#在$的左边, %在$的右边。
 
 神秘吧?
 
 小例子:
 #!/bin/bash
if [ "${1##*.}" = "tar" ]
then
    echo This appears to be a tarball.
else
    echo At first glance, this does not appear to be a tarball.
fi
参考文章: 截断字符串概述, 位置找不到了。
阅读(1376) | 评论(0) | 转发(0) |
0

上一篇:shell 学习记录 now...

下一篇:vi 命令的使用

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