Eu descobri este único forro:
awk '{len=$3-$2+1; mid=($2+$3)/2;
if (len>1000) {printf "%i-%i\n", mid-500, mid+499}
else {newlen=len*5>1000?1000:len*5;
printf "%i-%i\n", mid-(newlen/2), mid+newlen/2-1}}'
Eu tenho um arquivo com duas colunas correspondentes aos intervalos de início e fim como este:
awk '{print $2"-"$3}' file.txt
91082802-91082990
94018177-94018321
146945732-146945949
88701397-88701594
80922510-80922643
28800551-28800680
23612818-23613016
69178478-69178630
107524531-107524669
73153734-73154149
[...]
Gostaria de expandir os intervalos de início e fim para até 500%, exceto se o intervalo ultrapassar um determinado valor, N = 1000. Se o intervalo de início-fim já estiver acima de N = 1000, eu quero reescrever o início-fim para uma janela n = 1000 ao redor do centro.
Como posso fazer isso com um one-liner awk / bash?