Geralmente, essas coisas são mais fáceis usando a aritmética modular, por exemplo
awk '(NR-2)%5 && (NR-1)%5' file
3
4
5
3
4
5
3
4
5
Alternativamente, usando a notação n~m
("n skip m") do sed do GNU:
sed '1~5d;2~5d' file
Eu quero começar com um arquivo assim:
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
Retorne somente os três últimos de cada grupo de cinco da seguinte forma:
3
4
5
3
4
5
3
4
5
Eu consegui os 2 primeiros usando um código como este:
awk -vn=2 -vm=5 'NR<=i{next}; (NR-i)%m==1{c=1}; c++<=n
mas estou tendo problemas para fazer o mesmo no último agrupamento.
Geralmente, essas coisas são mais fáceis usando a aritmética modular, por exemplo
awk '(NR-2)%5 && (NR-1)%5' file
3
4
5
3
4
5
3
4
5
Alternativamente, usando a notação n~m
("n skip m") do sed do GNU:
sed '1~5d;2~5d' file