查找匹配多行字符串的文件

时间:2014-03-28 16:36:44

标签: python perl sed awk

我有一个包含许多此类模块文件的文件夹:

115,55
,175:500
,123:400
,[blahblah]
,[blahblah]
...
,[blahblah]
200,*
,[blahblah]
,[blahblah]
,[blahblah]
...

每个块从一个以数字开头的行开始,在以数字开头的下一行之前结束。

我需要在同一个块中找到包含“115,55”和“,123:400”的文件。两者之间可以有任意数行:

115,55
,[blahblah]
...
,[blahblah]
,123:400

摘要:在点击以数字开头的行之前,找到“115,55”和下一个“123:400”的文件名。

注意:如果它有帮助,这是一个UDR(使用数据记录)文件。

Python,Perl,sed或awk会有所帮助。

提前致谢!

2 个答案:

答案 0 :(得分:3)

perl -lne '/^115,55/ ... /^\d/ and /^,123:400/ or next;print $ARGV;close ARGV' *udr

答案 1 :(得分:1)

使用awk

awk '/115,55/{f=1;next}!/^,/{f=0;next}/,123:400/&&f{print FILENAME;nextfile}' /path/to/files/*