美文网首页GMT制图
4-1 提取文件名(去除后缀)

4-1 提取文件名(去除后缀)

作者: just_to_play | 来源:发表于2018-09-29 21:54 被阅读1次
    TXT=s.txt
    f1=`echo ${TXT%.*}`
    f=`echo ${f1##*/}`
    
    

    解释:

    ${var##*/}

    该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的内容。使用例子及结果如下:

    ~$ var=/dir1/dir2/file.txt
    ~$ echo ${var##*/}
    file.txt
    

    ${var%.*}

    该命令的使用是去掉变量var从右边算起的第一个'.'字符及其右边的内容,返回从右边算起的最后一个'.'(不含该字符)的左边的内容。使用例子及结果如下:

    ~$ var=/dir1/dir2/file.txt
    ~$ echo ${var%.*}
    /dir1/dir2/file
    

    总结:
    其实${}并不是专门为提取文件名或目录名的,它的使用是变量的提取和替换等等操作,它可以提取非常多的内容,并不一定是上面五个例子中的'/'或'.'。也就是说,上面的使用方法只是它使用的一个特例。

    看到上面的这些命令,可能会让人感到非常难以理解和记忆,其实不然,它们都是有规律的。
    #:表示从左边算起第一个
    %:表示从右边算起第一个
    ##:表示从左边算起最后一个
    %%:表示从右边算起最后一个

    相关文章

      网友评论

        本文标题:4-1 提取文件名(去除后缀)

        本文链接:https://www.haomeiwen.com/subject/hgtioftx.html