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

Linux下如何列出文件名第n位为字符e的所有文件?

查找文件名第n位为e的文件

原命令问题分析

你写的 find -regextype posix-egrep -regex '^./[e]{5}\.txt$' 逻辑错误,这个正则是匹配文件名全为5个e且后缀是txt的文件(比如eeeee.txt),而不是第5位字符为e的文件。

正确解决方法

方法1:用find正则精确匹配

如果要找当前目录下第n位字符为e的文件,正则需要表示「前n-1个任意字符 + e + 后续任意字符(含后缀)」。以n=5为例,命令如下:

find -maxdepth 1 -regextype posix-egrep -regex '^./.{4}e.*$'
  • -maxdepth 1 限制只查找当前目录,避免递归子目录
  • .{4} 匹配前4个任意字符(对应n-1),接着是e,.*匹配后续任意内容
    如果要限定后缀为txt,调整正则为:
find -maxdepth 1 -regextype posix-egrep -regex '^./.{4}e.*\.txt$'

其他n值只需把.{4}改成.{n-1}即可,比如n=3时用.{2}。

方法2:用shell通配符更简便

直接用ls结合通配符?(单个任意字符),以n=5为例:

ls ????e*
  • 4个?匹配前4位任意字符,e是第5位,*匹配后续任意内容
    如果要限定txt后缀:
ls ????e*.txt

这种方式无需find,更直观高效,且默认只查当前目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:45:43