从路径中提取最后一个斜杠的文件名

时间:2019-08-16 08:55:49

标签: linux bash shell ubuntu unix

我现在要在特定位置查找文件,我需要使用shell脚本从该路径中提取最后一个斜杠之后的文件名,而没有扩展名,例如*.war

我在下面尝试查找路径中的数据:

find /data1/jenkins_devops/builds/develop/5bab159c1c40cfc44930262d30511ac7337805fa -mindepth 1 -type f -name '*.war'

例如-此文件夹“ 5bab159c1c40cfc44930262d30511ac7337805fa”包含多个{。{1}},interview.war之类的.war文件,因此我希望输出是采访战争。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

有很多优雅的方法可以实现目标。以下使用awk实现目标:

find /data1/jenkins_devops/builds/develop/5bab159c1c40cfc44930262d30511ac7337805fa -mindepth 1 -type f -name *.war | awk -F "/" '{print $NF}' | awk -F "." '{print $1}'

Awk NF返回字段数,您可以使用它来打印最后一列。首先,您将/分隔为awk中的字段分隔符,并使用它打印最后一列。然后使用.作为分隔符并打印第一列以获得所需的结果。这是在上面的脚本中完成的。

答案 1 :(得分:-1)

只需使用basename

the_path="/data1/jenkins_devops/builds/develop/ab7f302d157d839b4ac3d7917cfa2d550ba2e73e/auth.war"
basename "$the_path" .war