![使用 bash 从文件创建数组,使用 ?通配符?](https://linux22.com/image/186480/%E4%BD%BF%E7%94%A8%20bash%20%E4%BB%8E%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA%E6%95%B0%E7%BB%84%EF%BC%8C%E4%BD%BF%E7%94%A8%20%3F%E9%80%9A%E9%85%8D%E7%AC%A6%EF%BC%9F%20.png)
我需要使用数组迭代目录中与特定模式匹配的文件。例如:
./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)
并获取相同文件的有效路径。
[这似乎应该是先前问题的重复,但我找不到合适的匹配。还有谁?]