关闭

实例讲解3--sed命令g

标签: pathfile扩展c
137人阅读 评论(0) 收藏 举报
分类:

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%.*}"  

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25909次
    • 积分:888
    • 等级:
    • 排名:千里之外
    • 原创:79篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    最新评论