Когда вы говорите «выберите только первые четыре и последние четыре строки», я предполагаю, что вы хотите обрабатывать посещения и регистрацию отдельно:
awk -F: '
$1 == "YEARS" {for (i=2; i<=NF; i++) {yr[i] = $i}; next}
$1 == "VISITS" {visits = 1; signups = 0; next}
$1 == "SIGNUPS" {visits = 0; signups = 1; next}
visits {
for (i=2; i<=NF; i++) {
v_d[$1] += $i # visits by domain
v_y[yr[i]] += $i # visits by year
}
}
signups {
for (i=2; i<=NF; i++) {
s_d[$1] += $i # signups by domain
s_y[yr[i]] += $i # signups by year
}
}
END {
OFS=FS
print "VISITS"
for (d in v_d) print d, v_d[d]
for (y in v_y) print y, v_y[y]
print "SIGNUPS"
for (d in s_d) print d, s_d[d]
for (y in s_y) print y, s_y[y]
}'
Учитывая ваш ввод, это выводит
VISITS
Domain1:73834
Domain2:413822
Domain3:1205541
Domain4:249758
1999:99842
2000:292882
1995:47197
1996:218694
1997:1161273
1998:123067
SIGNUPS
Domain1:6847
Domain2:90384
Domain3:516885
Domain4:68384
1999:27795
2000:10289
1995:15277
1996:92201
1997:482988
1998:53950