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

问题描述

| 我正在尝试弄清楚如何获取名为BOZO的文件文件名列表,但以123或456结尾。 文件是: BOZO12389, BOZOand3 BOZOand456 BOZOand5 BOZOhello123 因此,该命令应仅显示\'BOZOhello123 \'和\'BOZOand456 \' 我不知道。我尝试了我能想到的所有形式的LS和GREP。有趣的是,我们试图在课堂上做大约10分钟,但没人能做到(包括讲师)。     

解决方法

        我做了以下工作
ls BOZO*456 BOZO*123
    ,        使用shell的glob:
ls BOZO*{123,456}
    ,        使用正则表达式可以为您提供帮助。命令
egrep
应该会有所帮助,因为它将允许您使用正则表达式。 您正在搜索BOZO456和BOZO123类型的文件 句号period3ѭ是通配符,可以代替substitute4ѭ。
*
让您重复0次或更多次。通过放置123和456左右的圆括号,您将模拟OR。 因此,您希望任何字符重复0次或多次,后跟123或456。 例:
egrep \"BOZO.*(456|123)\" data
感谢Nathan Fellman的帮助和修改。     ,        您也可以使用find命令:
    find . \\( -name \"BOZO*123\" -o -name \"BOZO*456\" \\)
    ,        这不应该那么难。最幼稚的方法是在目录中加8,然后仅对所需内容进行grep:
$ ls *BOZO* | grep -e \'123$\' -e \'456$\'
    ,        
$ ll grep *BOZO*
也可以工作!