我有一个文本文件,我想打印以模式“abcd”开头的第一行以及以“DDD”模式开头的第 8 行和第 9 行。任何 sed 或 awk 这样做?
问问题
31 次
2 回答
2
这应该适合你:
awk '/^abcd/{p++;if(p==1) print}/^DDD/{q++;if(q==8||q==9)print}' file
于 2013-10-26T17:59:01.543 回答
1
perl -lne 'push @{ $h->{$1} }, $_ if /.*(abcd|DDD).*/;END{print join "\n", @{ $h->{abcd}}[0]; print join "\n", @{ $h->{DDD}}[7..8];}' file
或分解:
perl -lne '
push @{ $h->{$1} }, $_ if /.*(abcd|DDD).*/;
END{
print join "\n", @{ $h->{abcd} }[0], @{ $h->{DDD} }[7..8];
}
' file
于 2013-10-26T18:19:32.690 回答