将文件名加载到没有目录名称或扩展名的数组中

时间:2016-01-28 21:37:51

标签: bash shell

我试图在bash中将文件名加载到数组中。目前,我正在使用:

testarr=(csv/*.csv)

这给了我像

这样的元素
csv/filename.csv

如何只添加'文件名'到阵列?

谢谢!

2 个答案:

答案 0 :(得分:5)

最简单的方法是首先添加整个名称,然后使用parameter expansion删除您不想要的部分:

testarr=( csv/*.csv )            # load literal filenames
testarr=( "${testarr[@]##*/}" )  # strip off directory names
testarr=( "${testarr[@]%.csv}" ) # strip off extensions

答案 1 :(得分:0)

这也可以使用basename -a:

来完成
testarr=($(basename -a csv/*.csv))