Questão de Sistemas Operacionais — Linux — VUNESP 2026
- Código
- gp021213
- Banca
- VUNESP
- Órgão
- UNESP
- Ano
- 2026
- Cargo
- V - - Analista de Informática I - Área de Atuação: Redes e Infraestrutura
- A111 222 333
- B000 001 010 011
- C333 011
- D3 4
- Edado
GabaritoD — 3 4
Gabarito: letra D — a conta chega a 3 e 4, um por linha — alternativa D.
O awk é um processador de texto que lê um arquivo linha por linha e divide cada linha em campos, usando espaços ou tabulações como separadores. Cada campo é numerado: $1 é o primeiro, $2 o segundo, e assim por diante. A variável NF (Number of Fields) guarda quantos campos a linha atual tem — é um número, não o conteúdo dos campos.
Quando você escreve {print NF}, o awk executa essa ação para cada linha: ele imprime o valor de NF daquela linha. Como NF é atualizado a cada linha, a saída tem um número por linha, na ordem em que as linhas aparecem. Se você quisesse o conteúdo do último campo, usaria $NF — o cifrão faz toda a diferença: NF é a contagem, $NF é o valor.
Esta questão testa exatamente a diferença entre NF (número de campos) e o conteúdo dos campos. Basta contar quantos campos há em cada linha do arquivo.
arquivo 'dados' com duas linhas: '111 222 333' e '000 001 010 011'
comando: awk '{print NF}' dados
O que queremos: o que o comando imprime na tela
O awk processa o arquivo linha por linha, e para cada linha ele calcula NF. Começamos pela primeira linha para saber o primeiro número que será impresso.
Contar os números como se fossem um único campo — cada número separado por espaço é um campo distinto.
O awk continua para a próxima linha e recalcula NF. Precisamos do segundo número que será impresso.
Achar que a segunda linha tem 3 campos por causa dos zeros à esquerda — cada grupo de três dígitos é um campo.
O comando imprime um valor por linha, na ordem em que as linhas aparecem no arquivo. Juntando os dois resultados, temos a saída completa.
Confundir com $NF, que imprimiria os últimos campos (333 e 011) — a ausência do cifrão muda tudo.
Resposta: 3 e 4, um por linha — alternativa D
Link permanente: /questoes/gp021213