Você pode fazer algo como:
awk -F, '
NR == 1 {
for (i = 2; i <= NF; i++)
if (match($i, /AB|DG./))
file_list[file[i] = "file_" substr($i, RSTART, RLENGTH) ".csv"]
}
{
for (f in file_list) printf "%s", $1 > f
for (i = 2; i <= NF; i++) printf ",%s", $i > file[i]
for (f in file_list) print "" > f
}'
(chama o arquivo file_AB.csv
(baseado no prefixo), não file_AB1.csv
)