首页 > 解决方案 > unix 找到带有模式的正则表达式,而不是以另一个模式结尾

问题描述

我搜索了一些可能给我这个简单答案的东西,它似乎在这里这里(在很多中),但我根本无法让它工作。

我有像这样的文件

12_pattern1.yyy_zzz #find
13_pattern1.xxx.pattern2_xx 
12_yy_pattern1:xxx
14_pattern1.xxx_pattern2.xxx #find
12_xxx_zzz.yyy.xxx
14_pattern1.xxx.yyy #find

我需要查找并删除以12or开头的文件,之后立即14具有_pattern1并且不以pattern2.

我尝试了一些东西find . -regex ".*/\(12_\|14_\)pattern1.*[^pattern2$]" -exec rm -f {} \;

我在这里想念什么?

标签: regexunixfind

解决方案


像这样的东西怎么样:

find . -regex "^\(12_\|14_\)pattern1.*" -not -regex "*.pattern2$"

推荐阅读