Perl中的range命令
RANGE
/^ identifier cust_pri/ .. /addr-type-none/
与带有cust_pri
和cust_pri_sip
的字符串匹配,其中回车符紧接在字符串cust_pri
(和cust_pri_sip
)之后。我不希望在cust_pri_sip
上找到匹配项,而只希望在cust_pri
上找到匹配项。
我尝试分别放入\r\n
和两个都无济于事。我可以在perl范围的末尾添加字符串或metachar来帮助区分这两个字符串吗?
我需要查看两种类型的接口的数据,但是在第一个range命令上,它也在收集数据,第二个range命令也在上班(cust_pri_sip
),导致我的第一个脚本出错。第二件作品找到。我无法更改输入数据,因此需要一种区分两者的方法。
这是Perl主程序的子脚本
WIDTH = 65
DIRECTORY = /home/myfiles/
MASTER Config Lines
identifier cust_pri
description *
addr prefix 0.0.0.0
network interfaces M00|1:\d*
tcp media profile
monitoring filters
node functionality
default location string
alt family realm
addr-type-none
RANGE
/^ identifier cust_pri/ .. /addr-type-none/
#
还有另一个类似于上面的子脚本
RANGE
/^ identifier cust_pri_sip/ .. /addr-type-none/
第一个脚本还会收集两个脚本的数据,因为它们匹配。
答案 0 :(得分:1)
您可以使用public class Example {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(1);
env.addSource(...)
.filter(new Limiter())
.print();
env.execute();
}
public static class Limiter implements FilterFunction<Event> {
private transient int count = 0;
@Override
public boolean filter(Event e) throws Exception {
if (++count <= 10) {
return true;
} else {
return false;
}
}
}
}
明确排除_sip,也可以使用/^ identifier cust_pri(?!_sip)/
来使cust_pri必须位于行尾,且之后不得有任何字符