使用 bash 从文件创建数组,使用 ?通配符?

使用 bash 从文件创建数组,使用 ?通配符?

我需要使用数组迭代目录中与特定模式匹配的文件。例如:

./dirx/file1b_t1.tif
./dirx/file2b_z_t2_tif
./dirx/file3b_t3.tif
./dirx/file4b_x_t4.tif

我正在尝试构建一个列出上面第一个和第三个文件的数组。我知道“ls”不是构建数组的合适方法,但我尝试过“find”,但它不适用于“?”通配符。基本上我正在尝试复制:

ls ./dirx/*b_??.tif

但然后将列表通过管道传输到数组中。

答案1

只需直接存储 glob 表达式的扩展即可:

array=(./dirx/*b_??.tif)

顺便说一句,./通常是多余的;您可以只使用array=(dirx/*b_??.tif)并获取相同文件的有效路径。

[这似乎应该是先前问题的重复,但我找不到合适的匹配。还有谁?]

相关内容