awk -F '|' '
{ printf("%d = ID and %s = Name", $1, $2) }
NF == 3 { printf(" and %s = OS", $3) }
{ printf("\n") }' file
Isso geraria
1 = ID and Chris = Name and ubuntu = OS
2 = ID and Ram = Name
para os dados fornecidos. O código awk
simplesmente insere os dois primeiros campos no modelo printf
format. Se um terceiro campo estiver disponível, a parte do SO será então emitida na mesma linha. A linha é então finalizada por uma nova linha.