Я действительно борюсь с этим. Я не в состоянии понять отображение в ха sh ниже. Давайте использовать фиктивные данные:
MS Office Version1 Obsolete devicename
MS Office version2 Active devicename
Adobe Version1 Obsolete devicename
MS Office Version1 Obsolete devicename
Adobe Version2 Active devicename
Adobe Version3 Active devicename
MS Office Version1 Obsolete devicename
MS Office version2 Active devicename
Adobe Version3 Active devicename
Adobe Version3 Active devicename
Выше может быть в любом несортированном порядке (Devicename не используется, так как мне требуется только количество). Мне нужно отсортировать это и записать их в файл.
$count_app{$AppName}{$Ver}{$Stat}++;
foreach $App (sort keys %count_app) {
$app_counts = $count_app{$App};
foreach $Rating (sort keys %$app_counts) {
$status_counts = $app_counts->{$Rating};
foreach $Status (sort keys %$status_counts) {
$count = $status_counts->{$Status};
print "$Rating $App $Status and $count\n";
}
}
}
Выше приведена только функция ha sh, остальная часть кода здесь на самом деле не нужна, но в настоящее время она будет печатать данные отсортировано, как и ожидалось. Проблема в том, что я хочу напечатать его, чтобы он был уникальным для каждого статуса. Например:
Active:
Adobe Version2 1
Adobe Version3 3
MS Office Version2 2
Obsolete
Adobe Version1 1
MS Office Version1 3
Таким образом, сортировка важна, но так же важна и сортировка. Однако я пробовал много способов, но большинство либо выдает мне синтаксические ошибки, либо при использовании %seen
приложение будет использоваться только один раз, но затем пропускает другие соответствующие версии приложения.