RosettaCodeData/Task/Abbreviations-automatic/AWK/abbreviations-automatic.awk

31 lines
776 B
Awk

# syntax: GAWK -f ABBREVIATIONS_AUTOMATIC.AWK ABBREVIATIONS_AUTOMATIC.TXT
{ dow_arr[NR] = $0 }
END {
for (i=1; i<=NR; i++) {
if (split(dow_arr[i],arr1,FS) != 7) {
printf("NG %s\n",dow_arr[i])
continue
}
col_width = 0
for (j=1; j<=7; j++) {
col_width = max(col_width,length(arr1[j]))
}
for (col=1; col<=col_width; col++) {
delete arr2
for (j=1; j<=7; j++) {
arr2[toupper(substr(arr1[j],1,col))]
}
if (length(arr2) == 7) {
break
}
if (col >= col_width) { # catches duplicate day names
col = "NG"
break
}
}
printf("%2s %s\n",col,dow_arr[i])
}
exit(0)
}
function max(x,y) { return((x > y) ? x : y) }