BEGIN{ any_lists = 0 any_files = 0 } { if ($2 == "+=") { n = list_count [$1] + 0 list_data[$1 "," n] = $3 list_count [$1] = n + 1 any_lists = 1 } else if ($2 == "++=") { n = file_count [$1] + 0 file_data[$1 "," n] = $3 file_count [$1] = n + 1 any_files = 1 } else if ($2 == "+++=") { n = always_count [$1] + 0 always_data[$1 "," n] = $3 always_count [$1] = n + 1 any_always = 1 } else { print $0 } } END { if (any_lists != 0) { for (name in list_count) { n = list_count[name]; print name, "= \\" for (i = 0; i < n-1; i++) { print " ", list_data[name "," i], "\\" } print " ", list_data[name "," (n-1)] } } if (any_files != 0) { for (name in file_count) { n = file_count[name]; if (n < 10) { print name, "= \\" for (i = 0; i < n-1; i++) { print " ", file_data[name "," i], "\\" } print " ", file_data[name "," (n-1)] } else { print name, "= -F." name for (i = 0; i < n; i++) { filename = "." name; print file_data[name "," i] > filename } } } } if (any_always != 0) { for (name in always_count) { n = always_count[name]; for (i = 0; i < n; i++) { filename = "." name; print always_data[name "," i] > filename } } } }