Dit is vergelijkbaar met het antwoord van MvG, maar het vereist geen gawk
4 en gebruikt dus -F
zoals gesuggereerd in dat antwoord. Het toont ook een techniek voor het weergeven van de gewenste velden en het herhalen van de lijst. Dit kan de code gemakkelijker te onderhouden maken als er een grote lijst is.
#!/usr/bin/awk -f
BEGIN {
col_list = "colour shape size" # continuing with as many as desired for output
num_cols = split(col_list, cols)
FS = OFS = ","
}
NR==1 {
for (i = 1; i <= NF; i++) {
p[$i] = i # remember column for name
}
# next # enable this line to suppress headers.
}
{
delim = ""
for (i = 1; i <= num_cols; i++) {
printf "%s%s", delim, $p[cols[i]]
delim = OFS
}
printf "\n"
}