【问题标题】:Grep command with OR logic带有 OR 逻辑的 Grep 命令
【发布时间】:2016-12-19 04:18:51
【问题描述】:

我有一个目录,其中有许多文件,名称如 work1、work2、work3、work4 ... workn(其中 n 是任意数字)。我只想列出以 work 为前缀的文件,之后只有 1、2、3、4 或 5。

例如:应该列出work1work2work3work4work5。所以我的逻辑是ls -al | grep work,但它也会列出work6work7 等。如何进行?

【问题讨论】:

    标签: bash shell grep sh


    【解决方案1】:

    There is no need to parse the output of ls。调用ls时只需使用范围表达式:

    ls -al work[1-5]
    

    这将匹配名称与模式work[1-5] 匹配的任何文件。也就是说,任何名称为 work1, ..., work5 的文件。

    【讨论】:

    • “ls的输出不用解析。”
    • 嘿嘿,我很感激你的爱,但没有必要平衡反对票,否则这将成为一个简单的答案:D
    【解决方案2】:

    试试正则表达式:

    ls | grep -E 'work[1-5]'
    

    【讨论】:

    • 包含换行符的文件名除外。当代码比在所有情况下工作的代码更复杂时,不要使用在大多数情况下工作的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 2016-01-30
    • 1970-01-01
    • 2021-12-30
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多