Попробуйте это,
EMP=(`awk '!seen[$1]++ {print $1}' File1 File2`)
for emp in "${EMP[@]}"
do
DAYS=`awk -v b=$emp '$1==b {print $2}' File1 File2 | sort | uniq -c | awk '{print $2" was "$1" times"}' | sed ':a;N;$!ba;s/\n/ and on /g'`
echo "$emp presence on $DAYS "
done
Вариант этой проблемы недавно рассматривался в Kubernetes , так что стоит посмотреть, что там было сделано. (Вариант заключается в том, следует ли использовать iptables-legacy
или iptables-nft
и их варианты IPv6 для управления правилами хоста.)
Подход, принятый в Kubernetes, заключается в просмотре количества строк, выводимых соответствующими командами «сохранить» , iptables-legacy-save
иiptables-nft-save
(и их вариантами IPv6 ). Если первое выдает десять или более строк вывода или выдает больше вывода, чем второе, то предполагается, что следует использовать iptables-legacy
; в противном случае следует использовать iptables-nft
.
В вашем случае дерево решений может быть следующим:
iptables
не установлен, используйте nft
; nft
не установлен, используйте iptables
; iptables-save
не создает никакого правила -, определяющего вывод, используйте nft
; nft list tables
и nft list ruleset
не производят никакого вывода, используйте iptables
. Если iptables-save
и nft list...
оба производят вывод, а iptables
не является iptables-nft
, я не уверен, что автоматизированный процесс может принять решение.