$ echo "F001 1.2 F101 3.2 solvent1 0 solvent2 3 F001 2.2 F101 7.2 solvent1 5 solvent2 0 " | perl -e' $/ = ""; while ( <> ) { my %x = split; my ( $key ) = grep $x{ $_ } eq "0", keys %x; for ( sort keys %x ) { next if $x{ $_ } eq int $x{ $_ }; print "${key}_$_ => $x{$_}\n"; } } ' solvent1_F001 => 1.2 solvent1_F101 => 3.2 solvent2_F001 => 2.2 solvent2_F101 => 7.2