Regexp:不等于某个版本

时间:2018-02-07 11:28:30

标签: regex unix regex-negation

如何指定正则表达式以返回除名称中的某个版本

之外的所有文件夹

例如,我有这样的结构:

/tmp
  |->java-1.9 
  |->libs-2.2.0-prebuild
  |    |-some content
  |->libs-2.2.1-prebuild
  |    |-some content
  |->libs-2.1.2-prebuild
  |    |-some content

我需要获取所有libs文件夹名称Unix的find命令,除了名称中包含特定版本的文件夹(f.g. 2.2.0)

我正在尝试此命令,但它不起作用

find /tmp/ -maxdepth 1 -type d -regex '.*libs-((?!2\.2\.0).)*'

1 个答案:

答案 0 :(得分:1)

find 解决方案:

find /tmp/ -maxdepth 1 -type d -regex ".*/libs-.*" ! -regex "./libs-2\.2\.0-.*"
  • ! <expr> - 逻辑否定运算符,如果True<expr>则提供False