linux - 从路径中提取最后一个斜杠的文件名
问题描述
我现在在特定位置找到文件我需要从该路径中提取最后一个斜杠之后的文件名,而不使用它的扩展名,例如*.war
使用 shell 脚本。
我尝试在下面找出路径中的数据:
find /data1/jenkins_devops/builds/develop/5bab159c1c40cfc44930262d30511ac7337805fa -mindepth 1 -type f -name '*.war'
例如-这个文件夹“5bab159c1c40cfc44930262d30511ac7337805fa”包含多个.war文件interview.war
,auth.war
所以我期待输出是采访战。
有人可以帮忙吗?
解决方案
有很多优雅的方法可以实现目标。下面使用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 字段分隔符分隔列,并使用它来打印最后一列。然后.
用作分隔符并打印第一列以达到所需的结果。这是在上面的脚本中完成的。
推荐阅读
- mysql - 使用 PhpMyAdmin 导出的 sql 文件包含错误消息
- c++ - 如何避免多平台qt代码中的特定#ifdef?
- matlab - Matlab函数工作很慢
- scala - 在 Seq[Person] 中查找人和直接邻居
- java - jdbc PSQLException:错误:“CONFLICT”处或附近的语法错误
- ocaml - 之后在 Ocaml 中的两个动作
- forms - 自动完成信用卡到期 cc-exp 未填写所需格式
- django - formModel中的django反向
- javascript - 在 linux 上安装 OpenCV:出现 CMake 错误
- java - 最小化要为 JUnit 测试加载的类