You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Glob匹配包含多个句点的文件路径?

解决Glob匹配含多个句点的.txt文件问题
  • 首先明确:*.txt本身就能匹配文件名里有任意多个句点的.txt文件,因为*会匹配除路径分隔符外的任意字符(包括句点)。你遇到的部分文件不匹配,大概率是bash未开启globstar选项——默认情况下bash不启用**递归匹配子目录的功能。

  • 核心解决步骤:

    1. 临时开启globstar(当前shell会话有效):
      shopt -s globstar
      
    2. 执行原命令即可匹配所有子目录下的.txt文件(无论文件名有多少个句点):
      ls /path/**/*.txt
      
    3. 若想永久开启globstar,可把shopt -s globstar添加到~/.bashrc或~/.bash_profile中。
  • 跨shell兼容的替代方案:
    如果不想修改shell设置,可用find命令实现递归匹配,写法简洁且无需依赖特定shell配置:

    find /path -type f -name "*.txt"
    
  • 你之前尝试写法的问题说明:

    • [a-zA-Z0-9\.]*.txt:字符集仅覆盖字母、数字和句点,会漏掉含连字符(如my-example.file.txt)等其他字符的文件。
    • **/**.txt:写法冗余,且同样依赖globstar开启,效果和**/*.txt完全一致。
    • *.*.txt:仅匹配文件名中至少包含两个句点的.txt文件,会漏掉file.txt这类只有一个句点的文件。

内容的提问来源于stack exchange,提问作者myol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:57:07