首页 > 解决方案 > 从路径中提取最后一个斜杠的文件名

问题描述

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

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

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

例如-这个文件夹“5bab159c1c40cfc44930262d30511ac7337805fa”包含多个.war文件interview.warauth.war所以我期待输出是采访战。

有人可以帮忙吗?

标签: linuxbashshellubuntuunix

解决方案


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

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

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


推荐阅读