O Awk não lembra as posições de campo ou as cadeias de caracteres do delimitador. Você terá que descobrir as posições de campo manualmente. Não é muito difícil.
echo " a b c X marks the start, Y marks the end " |
awk '{
i=1; n=1; tmp=$0; # i=field number, n=column number
while (match(tmp, / *, *| +/)) {
A[i]=n; B[i]=n+RSTART-1; # A[i],B[i] = start,end of delimiter i
++i; n+=RSTART+RLENGTH-1;
tmp=substr(tmp,RSTART+RLENGTH)
}
print substr($0, A[5], B[9]-A[5]) # start at 4+1 because the first field is empty
}'