实例讲解3--sed命令g

22.dirname或参数扩展提取目录名

        例如从$0参数中提取运行的路径:从../../etc/passwd/得到../../etc,从/etc/passwd得到/etc

       方法一:dirname

           c_path=$0

           c_path=`dirname $c_path`

注:如果没有路径,则c_path得到为单字符”.”。所以,判断是否在当前路径执行可以使用条件 “-$c_path” = “-.”

       方法二(参数扩展在基本sh下不支持):

           c_path=$0

           c_path=’${0%/*}’

注:如果没有路径,则c_path得到为文件名,即$0。所以,判断是否在当前路径执行可以使用条件 “-$c_path” = “-$0”

 

    23.grep,sed获取文件的扩展名

例如从../../home/file.c得到c

       方法一:

           file=$1

           #得到最后一级文件名 ,如file.c

file=`basename$file`

#如果文件名中不含有.,则表示没有后缀

if[ 1 -gt `echo $file | grep -c '\.'` ]; then

    echo "no extion"

else

    #过滤掉最后一个.以及之前的所有字符,得到扩展名

    echo `echo $file  | sed "s/.*\.//g" `

fi

       方法二:(参数扩展在基本sh下不支持)

           file=$1

           #得到最后一级文件名 ,如file.c

file=`basename $file`

#从file的尾部开始删除匹配.*(一个.后跟若干字符)的最小部分并返回剩余部分

           echo  "${file%.*}"  

阅读更多
文章标签: path file 扩展 c
个人分类: shell linux
上一篇实例讲解3--sed命令f
下一篇实例讲解3--sed命令h
想对作者说点什么? 我来说一句

常用的Dos命令讲解实例

2011年03月13日 4KB 下载

没有更多推荐了,返回首页

关闭
关闭