No exemplo que você encontrou, a variável c
é inútil, você pode concatenar diretamente cordas (aqui campos) e imprimir o resultado.
Aqui está uma maneira de alcançar o que você deseja:
awk -F\| '{
if(length($1) == 12 && $21 == "SOUTHWEST")
printf("%s , %s, %s\n",$1 ,substr($2,5,9),$3$15)
}' sample.txt | head > text.csv