基于文件名模式的linux文件搜索

基于文件名模式的linux文件搜索,linux,unix,Linux,Unix,我想根据文件名搜索一系列文件 这是我的目录: 例如,我有上面的文件 我只想搜索不带_-bak的文件。使用Grep Invert Match选项 例如,如果希望所有文件都不包含单词_bak,请使用: grep -v *_bak /path/to/file 如果要将搜索限制到当前目录,请使用: find . -maxdepth 1 -mindepth 1 ! -name '*_bak' 如果要在所有目录中递归查找,请删除-maxdepth 1 根据OP的评论进行编辑 要获取以ei开头而不是以

我想根据文件名搜索一系列文件

这是我的目录:

例如,我有上面的文件


我只想搜索不带_-bak的文件。

使用Grep Invert Match选项

例如,如果希望所有文件都不包含单词_bak,请使用:

grep -v *_bak /path/to/file

如果要将搜索限制到当前目录,请使用:

find . -maxdepth 1 -mindepth 1 ! -name '*_bak'
如果要在所有目录中递归查找,请删除
-maxdepth 1


根据OP的评论进行编辑

要获取以
ei
开头而不是以
\u bak
结尾的文件,请使用:

find . -type f -name 'ei*' -a ! -name '*_bak'
请试试这个:

 find . -type f ! -iname "*_bak"

上述命令将查找所有未以_bak结尾的文件。

您使用的是什么编程语言?哪种API?你的问题太模糊了,无法给出一个好的答案。您正在尝试搜索文件的内容吗?文件名本身?您只是想获取不以
\u bak
结尾的文件名吗?此外,您应该以纯文本而不是图像形式发布目录内容。你看,我不确定这是怎么一回事。OP已将其标记为
linux
unix
,他要求挑出最后没有
\u bak
的文件。我错过什么了吗?(虽然格式化是正确的。你们应该真正使用纯文本。)这个问题对我来说似乎很清楚。该模式以“ei469390ONL00”开头,看起来像windows,而不是linux,因此该命令很有用。谢谢如果目录也包含其他文件,但我只想搜索出文件名以ei开头但没有bak?这将执行
find-名称“ei*”-类型f-在南部“*_-bak”
嗨,蒂姆·波特,如果没有-maxdepth 1-mindepth 1,你的答案就可以了。感谢您的帮助。@user1154655根据您的建议进行了更改。嗨,埃尔瓦尔德,您的答案不起作用,但也感谢您的帮助。
grep
如果您将
ls
的输出传输到它,它将起作用。e、 g.
ls.|grep-v_-bak