Use um dos dois padrões:
NR>6 { this_code_is_active }
ou isto:
NR<=6 { next }
{ this_code_is_active }
Use FNR ao invés de NR se você tiver muitos arquivos como argumentos para o awk e quiser pular 6 linhas em cada arquivo.
Como posso pular as primeiras 6 linhas / linhas em um arquivo de texto (input.txt) e processar o resto com o awk? O formato do meu script awk (program.awk) é:
BEGIN {
}
{
process here
}
END {
}
Meu arquivo de texto é assim:
0
3
5
0.1 4.3
2.0 1.5
1.5 3.0
0.3 3.3
1.5 2.1
.
.
.
Eu quero processar o arquivo a partir de:
0.3 3.3
1.5 2.1
.
.
.
Use um dos dois padrões:
NR>6 { this_code_is_active }
ou isto:
NR<=6 { next }
{ this_code_is_active }
Use FNR ao invés de NR se você tiver muitos arquivos como argumentos para o awk e quiser pular 6 linhas em cada arquivo.
Tente:
awk 'FNR > 6 { #process here }' file
Você também pode pular um número arbitrário de linhas no início ou no final do arquivo usando head
ou tail
programas.
Para sua pergunta concreta,
tail input.txt -n+7 | program.awk
serve, desde que o seu arquivo program.awk
seja executável. Caso contrário, você pode usar
tail input.txt -n+7 | awk -f program.awk
Dessa forma, você poupará uma comparação para cada linha e não precisará alterar a lógica do seu código AWK.
tail
começará a transmitir o texto a partir da sétima linha, pulando as seis primeiras linhas.
Isso não será um grande negócio no desempenho, especialmente se o processo de texto for simples graças ao armazenamento em cache. No entanto, arquivos longos e uso repetido no ambiente de nuvem podem economizar alguns custos.