如何在bash中检索文件名或扩展名

这个问题在这里已经有了答案:

  • 在Bash中提取文件名和扩展名35个答案

  • 打印最后一个由非字母字符分隔的提交。

    awk -F '[^[:alpha:]]' '{ print $0,$NF }'
    /home/myuser/mydata/myfile/data.log log
    /home/myuser/mydata/myfile/myfile.gz gz
    /home/myuser/mydata/myfile/mod.conf conf
    /home/myuser/mydata/myfile/security security
    /home/myuser/mydata/myfile/last last
    

    这应该适合你:

    x='/home/myuser/mydata/myfile/security'
    ( IFS=[/.] && arr=( $x ) && echo ${arr[@]:(-1):1} )
    security
    
    x='/home/myuser/mydata/myfile/data.log'
    ( IFS=[/.] && arr=( $x ) && echo ${arr[@]:(-1):1} )
    log
    

    提取文件名路径中的最后一个元素:

    filename=$(path##*/}
    

    在文件名中的点后面提取字符:

    extension=${filename##*.}
    

    但(我的评论),而不是看扩展名,它可能会更好地使用file 。 见man file

    链接地址: http://www.djcxy.com/p/57081.html

    上一篇: how to retrieve filename or extension within bash

    下一篇: Get just the filename from a path in a Bash script