【问题标题】:grep char followed by anything containing specific other charactersgrep char 后跟包含特定其他字符的任何内容
【发布时间】:2017-04-12 15:56:29
【问题描述】:

我想使用 grep 在目录 (/bin) 中搜索以特定字符开头并后跟包含其他两个特定字符之一的任何字符串。就我而言,我希望每个文件都以“g”开头并包含字母“e”或“n”。我尝试了许多“ls /bin | grep '^g'”的变体。

【问题讨论】:

    标签: regex bash shell grep lookaround


    【解决方案1】:

    怎么样:

    ls /bin | grep '^g.*[en]'
    

    【讨论】:

    • 解析ls 输出并不是最好的做法:Why you shouldn't parse the output of ls command
    • @codeforester 伙计们,我们真的应该停止这种 don't parse ls 的事情。虽然我完全同意这些原因(我很确定 Toto 也知道这一点),但我自己使用 ls | some_command 经常是日常命令行工作。 (当然,永远不会在脚本中使用它,但它在直接终端工作中是完全可以接受的。用这样的链接评论每个ls answer只是一个窃听.. .(只是恕我直言);(
    • 我也可以用 "ls /bin | grep -P '^g(?=.[e|n])'" 做到这一点(困难的方式)。另外,感谢您的链接!
    【解决方案2】:

    使用find,您可以:

    find /bin -regex '/bin/g.*[en].*'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 2018-09-23
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      • 2011-11-24
      • 2018-04-03
      相关资源
      最近更新 更多