【问题标题】:Extracting the file name from a full path string [duplicate]从完整路径字符串中提取文件名[重复]
【发布时间】:2018-11-16 22:44:57
【问题描述】:

假设我有一个代表文件完整路径的字符串: full_path='./aa/bb/cc/tt.txt'.

如何只提取文件名tt.txt

请不要告诉我使用echo $full_path | cut -d'/' -f 5

因为文件可能位于更深或更浅的文件夹中。

号码5 不能适用于所有情况。

【问题讨论】:

标签: string bash


【解决方案1】:

如果你对 python 很熟悉,那么你可以使用下面这段代码。

full_path = "path to your file name"
filename = full_path.split('/')[-1]
print(filename)

【讨论】:

    【解决方案2】:

    使用参数扩展功能。

     full_path='./aa/bb/cc/tt.txt'
     echo ${full_path%/*}
    

    这会给你输出

     ./aa/bb/cc
    

    并且可以在任意数量的目录级别下工作,因为它会为您提供直到最后的“/”的所有内容。

    编辑:参数扩展非常有用,所以这里有一个快速链接,可以很好地概述可能的情况:http://wiki.bash-hackers.org/syntax/pe

    【讨论】:

      【解决方案3】:

      你可以使用这个结构

      echo "$full_path" | sed 's/\/.*\///'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-21
        • 1970-01-01
        • 1970-01-01
        • 2013-02-06
        • 1970-01-01
        • 2010-11-09
        • 2012-06-24
        • 1970-01-01
        相关资源
        最近更新 更多