0

我有一个包含多个条目的文件。条目由 - 如果在其中找不到某个短语,我想删除此模式之间的所有行。例子:

--
Company
Street 
Zip Code
Country
--

如果 Country 在 -- 和 -- 之间找不到,则删除整个块

提前致谢 :)

4

2 回答 2

1

也许以下内容会有所帮助:

use strict;
use warnings;

local $/ = '--';
print $/;

while (<>) {
    print if /\bCountry\b/;
}

用法:perl script.pl dataFile [>outputFile]

数据:

--
Company
Street 
Zip Code
Elephant
--
Company
Street 
Zip Code
Country
--
Company
Street 
Zip Code
Goat
--
Company
Street 
Zip Code
Country
--

输出:

--
Company
Street 
Zip Code
Country
--
Company
Street 
Zip Code
Country
--
于 2013-01-31T05:44:25.843 回答
1

你可以这样做:

awk '!/Country/' RS='--\n' ORS='--\n'
于 2013-01-30T15:13:36.170 回答