Мой вариант:
perl -wE '
# read the data
chomp( my $header = <> );
my %data;
while (<>) {
chomp;
my @F = split;
$data{$F[0]}{$F[1]} = $F[2];
}
# requirement 1
delete $data{Type1} if exists $data{Type1}{XXX};
# requirement 2
if (exists $data{Type4}{ABC} and exists $data{Type4}{DEF}) {
if ($data{Type4}{ABC} <= $data{Type4}{DEF}) {
delete $data{Type4}{DEF};
}
else {
delete $data{Type4}{ABC};
}
}
# requirement 3
for my $name (qw/Type5 Type6/) {
delete $data{$name} unless (
scalar keys %{$data{$name}} == 1
and (exists $data{$name}{ABC} or exists $data{$name}{DEF})
);
}
$, = " ";
say $header;
for my $name (sort keys %data) {
for my $v1 (sort keys %{$data{$name}}) {
say $name, $v1, $data{$name}{$v1};
}
}
' file
выводит
Name v1 v2
Type2 ABC 78
Type2 XXX 23
Type3 DEF 22
Type3 XXX 12
Type4 ABC 55
Type5 ABC 99
Type6 DEF 00
] Нет требований к Type2 и Type3
Чтобы продвинуться дальше, вам нужно добавить --namespace kube-system
к вашей команде описания:
kubectl --namespace kube-system describe pod tiller-deploy-6b985bb7b-88ssk
Тогда вы сможете эффективнее определять первопричину. То же самое, если вы хотите попытаться удалить модуль, чтобы временно обойти его.