命令 grep 多个文件?

发布于 2024-10-27 15:10:38 字数 295 浏览 1 评论 0原文

无需编写 shell 脚本,我想知道是否有一种方法可以根据与多个条件的匹配来列出文件?

我知道我可以这样做:

ls ./files/ | grep samp

获取文件名中包含“samp”的所有文件的列表...但是,有没有办法说“列出所有与“samp”匹配的文件或“示例”?

我已经发现这

ls ./files/ | grep samp examp 

不起作用......

without having to write a shell script, I'm wondering if there's a way to list files based on a match to more than one criteria?

I know I can do:

ls ./files/ | grep samp

to get a list of all files that contain "samp" in the filename... But, is there a way to say, "list all of the files that match "samp" or "examp"?

I already figured out that

ls ./files/ | grep samp examp 

doesn't work...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

过期以后 2024-11-03 15:10:38

使用 find - 它对于做这种事情来说更强大,例如:

find ./files -name \*samp\* -o -name \*examp\*

Use find - it's much more powerful for doing this kind of thing, e.g.:

find ./files -name \*samp\* -o -name \*examp\*
攒眉千度 2024-11-03 15:10:38

您可以使用 |

ls ./files/ | grep -E 'samp|examp'

-E 允许使用扩展(现代)正则表达式。如果您的 grep 版本不支持该行为,则需要转义 |

ls ./file/ | grep 'samp\|examp'

You can use |:

ls ./files/ | grep -E 'samp|examp'

The -E is to allow the use of extended (modern) regular expressions. If your version of grep doesn't support that behaviour, you'll need to escape the |:

ls ./file/ | grep 'samp\|examp'
凉宸 2024-11-03 15:10:38
ls ./files/ | grep -esamp -eexamp 
ls ./files/ | grep -esamp -eexamp 
把人绕傻吧 2024-11-03 15:10:38

您可以使用find命令。

find ./files -name \*samp\* -o -name \*examp\*

-o 表示“或”。您可以使用 -iname 代替 -name 进行不区分大小写的匹配。

You can use the find command.

find ./files -name \*samp\* -o -name \*examp\*

The -o means "or". You can use -iname instead of -name for case-insensitive matching.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文