Есть файл типа
Раскидать значения по статусу.
однострочник:
основную работу делает
:)
ERD_Sovetsk_22 Power: OK
ERD_Lenina_31 Power: PROBLEM
ERD_Svobody_1 Power: OK
Kommynist_33 is access: PROBLEM
ERD_Sovetsk_100 Power: PROBLEM
ERD_Partizan_98 Power: PROBLEM
Marksa_4 is access: PROBLEM
Revolucii_67 is access: PROBLEM
Marksa_4 is access: PROBLEM
Revolucii_67 is access: OK
Раскидать значения по статусу.
однострочник:
# perl -aF":\\s+" -lne 'push @{$a{$F[1]}}, $F[0];
END{ print STDERR "PROBLEM: ", join ",", @{$a{PROBLEM}};
print "OK: ", join ",", @{$a{OK}}; }' file
основную работу делает
-aF":\\s+" и push, которые делят входящие строки и распихивают их по статусу в %a.
:)
no subject
Date: 2011-08-08 06:49 am (UTC)perl -aF":\\s+" -lne 'if($F[1] eq "OK"){print $_}else{push @a, $_}END{ print STDERR $_ for @a' file
no subject
Date: 2011-08-08 06:53 am (UTC)в "хорошем" файле должен быть
OK: ERD_Sovetsk_22 Power,ERD_Svobody_1 Power,Revolucii_67 is access,в "плохом" -
PROBLEM: ERD_Lenina_31 Power,Kommynist_33 is access,ERD_Sovetsk_100 Power,ERD_Partizan_98 Power,Marksa_4 is access,Revolucii_67 is access,Marksa_4 is accessno subject
Date: 2011-08-08 09:38 am (UTC)perl -aF":\\s+" -lne 'push@{$a{$F[1]}},$F[0];END{$"=",";print("$_: @{$a{$_}}"),*STDOUT=*STDERR for sort keys%a}' file
no subject
Date: 2011-08-08 09:38 am (UTC)no subject
Date: 2011-08-08 10:31 am (UTC)no subject
Date: 2011-08-08 08:02 am (UTC)no subject
Date: 2011-08-08 08:04 am (UTC)