我需要从REGEXP捕获文本文件的CSV部分,直到第二个空行。如下所示:
garbage garbage
garbage garbage
garbage garbage
REGEXP
data,data,data
data,data,data
garbage garbage
garbage garbage
garbage garbage任何关于如何在sed或perl中实现这一点的想法都将非常受欢迎。
发布于 2011-10-14 07:06:18
perl -ne '$on=1 if /REGEXP/; if ($on) { print; $blank++ if /^\s*$/; last if $blank == 2 }' file.csv将显示:
REGEXP
data,data,data
data,data,data如果您不想显示REGEXP
perl -ne '$on=1 and next if /REGEXP/; if ($on) { print; $blank++ if /^\s*$/; last if $blank == 2 }' file.csv发布于 2011-10-14 07:07:54
perl -00 -ne 'print, print(scalar <>), exit if /REGEXP/' file.txt发布于 2011-10-14 07:05:31
如下所示:
#!/usr/bin/perl
use warnings; use strict;
while (<DATA>) {
/^REGEXP/ and last;
}
my $csv_line;
while ($csv_line = <DATA>) {
$csv_line =~ /,/ and last;
}
while (defined($csv_line) and $csv_line =~ /\S/) {
process_csv($csv_line);
$csv_line = <DATA>;
}
sub process_csv {
my ($line) = @_;
print $line;
}
__DATA__
garbage garbage
garbage garbage
garbage garbage
REGEXP
data,data,data
data,data,data
garbage garbage
garbage garbage
garbage garbagehttps://stackoverflow.com/questions/7761330
复制相似问题