これはMvGの回答に似ていますが、gawk
は必要ありません。 4したがって、-F
を使用します その答えで示唆されているように。また、目的のフィールドをリストし、リストを反復処理するための手法も示しています。これにより、リストが大きい場合にコードの保守が容易になる可能性があります。
#!/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"
}