查找排除编号短划线编号的目录

时间:2017-06-30 17:10:30

标签: regex linux find

我正在尝试编写一个find命令来排除数字破折号码的目录,但允许其他目录。

示例目录

SELECT 
  MAX(numeric_attr)
FROM 
  [SOME TABLE]
GROUP BY 
  numeric_attr
HAVING 
  COUNT(numeric_attr) = 2

这是我的find命令的一部分。我似乎无法跳过数字目录。

./135888897-135954433/
./135888897-135954434/
./135888897-135954435/
./BLAG-DEF-JOB1/
./TOM-DEPLOYDEV-JOB1/
./FRANK-RELEASE-JOB1/
./STEVE-RELEASE-JOB1/

任何帮助都会很棒。谢谢!

2 个答案:

答案 0 :(得分:1)

您应该使用.*代替* 使用正则表达式时,*表示与之前的令牌匹配0次或更多次'

这将产生以下命令:

find . -type f ! -regex '\./[0-9]+\-[0-9]+/.*'

更新:我还以为您忘了逃脱命令中的/,但经过一些研究后,似乎无法使用/ find命令。

答案 1 :(得分:1)

您可以使用:

find . -type f ! -regex '\./[0-9]+-[0-9]+/.*'