#!/usr/bin/perl use warnings; use strict; my $previous_gn = ""; my $header; while (<>) { if (my ($gn) = /^>.* GN=([^ ]+)/) { if ($gn ne $previous_gn) { $previous_gn = $gn; $header = $_; } } else { if ($header) { print $header, $_; undef $header; } } }