我正在尝试使用 glob 来匹配文件名中包含多个句点(包括扩展名)的文件。
ls /path/to/my/example.file.txt
ls /path/to/my/file.txt
ls /path/to/my-example.file.txt
ls /path/to/my.example.file.txt
ls /path/which/is/longer/to/my/example.file.txt
ls /path/which/is/even/longer/to/my/example.file.txt
我尝试使用以下内容;
ls /path/**/*.txt
但我只得到一些匹配。看起来,如果文件有多个句点,
*.txt
将不匹配。
我尝试了类似以下的方法,但它并没有真正起作用,我想有一种更干净的方法来完成此任务。
ls /path/**/[a-zA-Z0-9\.]*.txt
ls /path/**/**.txt
ls /path/**/*.*.txt # Doesn't work for files with a single period
使用
ls
和路径仅作为示例。
我对底层程序可能无法正确实现通配符的想法持开放态度。
我将 glob 传递给另一个程序,它在被程序读取之前在 bash 中扩展
program '/path/**/*.txt' # works as expected