Как уже упоминал Матфей, то, что вы пытаетесь сделать, выходит за рамки предполагаемого использования grep. Awk был создан для такого типа вещей и доступен в большинстве дистрибутивов Linux (gawk - это реализация GNU) и даже во многих встроенных системах Linux. здесь есть хороший учебник, который займет меньше часа и научит вас практически всему, что вам нужно знать.
Вот код awk, который вам понадобится для решения вашей проблемы:
#!/bin/awk -f
BEGIN {
tokens["Model"] = 0
tokens["Manufacturer"] = 0
tokens["Man Date"] = 0
tokens["SW Version"] = 0
tokens["HW Version"] = 0
tokens["Receiver ID"] = 0
}
{
for (token in tokens){
if ($1 == token){
print $0;
tokens[$1]++;
}
}
}
END {
for (token in tokens){
if( tokens[token] == 0){
printf("%-13s = NA\n" , token)
}
}
}
Сохраните это в tmp.awk и добавьте разрешения на выполнение в tmp.awk.
cat <your file> | ./tmp.awk
Это напечатает то, что вы хотите.