仅列出目录中与单词 BOZO 匹配且以“123”结尾的某些文件。或“456”

发布于 2024-11-15 16:34:05 字数 262 浏览 4 评论 0原文

我正在尝试找出如何获取名为 BOZO 但仅以 123 或 456 结尾的文件的文件名列表。

文件为:

BOZO12389,
BOZO和3
BOZO和456
BOZO和5
BOZOhello123

所以该命令应该只显示“BOZOhello123”和“BOZOand456”

我无法弄清楚。我已经尝试过我能想到的所有形式的 LS 和 GREP。有趣的是,我们在课堂上尝试了大约10分钟,但没有人能做得到(包括老师)。

I'm trying to figure out how to get a list of file names for a file named BOZO but ending with ONLY 123 OR 456.

Files are:

BOZO12389,
BOZOand3
BOZOand456
BOZOand5
BOZOhello123

So the command should only display 'BOZOhello123' and 'BOZOand456'

I can't figure it out. I've tried all forms of LS and GREP that I can think of. The funny thing is, we tried to do it in class for about 10mins and no one could get it (including the instructor).

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

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

发布评论

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

评论(6

时光是把杀猪刀 2024-11-22 16:34:05

我做了以下操作并且成功了

ls BOZO*456 BOZO*123

I did the following and it worked

ls BOZO*456 BOZO*123
请止步禁区 2024-11-22 16:34:05

使用 shell 的 glob:

ls BOZO*{123,456}

Using shell's globs:

ls BOZO*{123,456}
冰雪之触 2024-11-22 16:34:05

使用正则表达式可以帮助您。命令 egrep 应该会有所帮助,因为它允许您使用正则表达式。

您正在搜索 BOZO456 和 BOZO123 类型的文件

。句点 . 是通配符,允许您替换 * 会让您重复 0 次或多次。通过放置大约 123 和 456 个圆括号,您将模拟一个 OR。

因此,您希望任何字符重复 0 次或多次,后跟 123 或 456。

示例:

egrep "BOZO.*(456|123)" data

感谢 Nathan Fellman 的帮助并进行编辑。

Use regular expressions to help you. The command egrep should help, because it will allow you to use regular expressions.

You're searching for files of the kind BOZO456 and BOZO123

A period . is a wild card, allowing you to substitute for <anything>. The * will let you repeat it 0 or more times. By placing around 123 and 456 round brackets, you will simulate an OR.

Thus, you want any character repeated 0 or more times, followed by 123 or 456.

Example:

egrep "BOZO.*(456|123)" data

Thank you to Nathan Fellman for the help and edits.

玻璃人 2024-11-22 16:34:05

您还可以使用find命令:

    find . \( -name "BOZO*123" -o -name "BOZO*456" \)

You could also use find command :

    find . \( -name "BOZO*123" -o -name "BOZO*456" \)
度的依靠╰つ 2024-11-22 16:34:05

$ ll grep *BOZO* 也应该可以工作!

$ ll grep *BOZO* should work too!

浪荡不羁 2024-11-22 16:34:05

这应该没那么难。最简单的方法是 ls 目录,然后 grep 只查找您想要的内容:

$ ls *BOZO* | grep -e '123
 -e '456

This shouldn't be that hard. The most naive way is to ls the directory and then grep for only what you want:

$ ls *BOZO* | grep -e '123
 -e '456

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