Tente isto:
$ echo "65 6 25 2014 176 8 20 2 7671912 7849744 201 10" |
awk 'FNR == NR { a[$1]; next }
{
for (i = 9; i <= NF; i += 2) {
if (!($i in a)) {
flag = 1;
}
}
if (flag) {
print "CORRUPTED";
} else {
print "AVAILABLE";
}
}
' file -
CORRUPTED
file contém todos os seus valores numéricos para comparar. Você deve substituir echo "65 6 25 2014 176 8 20 2 7671912 7849744 201 10" deste teste pelo script que imprime a linha anterior onde o arquivo contém um único token.
Explicação
-
FNR == NR { a[$1]; next }: ao processarfile, salvamos cada número emfileem uma matriza. - Depois de ler
file, percorremos todos os campos ímpares, começando no campo9th, se o valor do campo não estiver na matriza, definimosflag = 1. - Finalmente, se
flagestiver definido como 1, significa que temos pelo menos um campo cujo valor não está emfile, por isso, imprimimosCORRUPTED, caso contrário, imprimaAVAiLABLE.