A função getline
lê a próxima linha e move o script para ela. Portanto, as chamadas getline
consecutivas são movidas para a próxima linha. Talvez isso seja mais fácil de entender com um exemplo:
$ cat input.txt
foo
1
2
$ awk '/foo/{print; getline; print; getline; print}' input.txt
foo
1
2
Como você pode ver acima, o script processará a primeira linha porque corresponde a foo
. Cada chamada para getline
lerá a linha após a atual, portanto, as chamadas print
subseqüentes estão imprimindo as próximas linhas.