列出给定扩展名的文件的最简单方法是什么,将该列表保存到文本文件,但在文本文件中省略实际扩展名?

列出给定扩展名的文件的最简单方法是什么,将该列表保存到文本文件,但在文本文件中省略实际扩展名?

这是用于反恐精英服务器的,其中 mapcycle.txt 包含在 map/ 文件夹中找到的所有地图,但地图列表不能包含 .bsp 扩展名。

地图/文件夹示例:

map1.bsp
map2.bsp

mapcycle.txt 应该包含

map1
maps2

我知道如何做其中的一部分:

find /path/to/maps/ -iname *.bsp > /path/to/mapcycle.txt

但我不知道如何让它省略实际 mapcycle.txt 中的 .bsp 扩展名

答案1

使用findbasename

find maps/ -iname '*.bsp' -exec basename {} .bsp \; > mapcycle.txt

-exec标志运行命令行的其余部分(直到遇到或)用所选文件的文件名(包括路径)替换;。将删除后缀和路径并仅留下。+{}basename /path/to/filename.suffix .suffixfilename

答案2

这将是:

ls *.bsp | awk -F"." '{print $1}' > mapcycle.txt

答案3

cd  to map folder 

并执行

ls *.bsp |sed s/\.[^\.]*$// >> list.txt

相关内容