Pular para o conteúdo principal

Questão de Sistemas Operacionais — Geral — VUNESP 2023

Sistemas OperacionaisGeral
Código
vu197403
Banca
VUNESP
Órgão
TRF 3
Ano
2023
Cargo
TJ TRF3
Em uma máquina com sistema operacional Linux, o arquivo com o nome dados.txt possui o seguinte conteúdo:   Amanda 123 Bruno 111 O administrador desta máquina digitou o comando: awk '{print NR}' dados.txt   É correto afirmar que o retorno desse comando será:
  1. A1 2
  2. BAmanda Bruno
  3. C123 111
  4. DAmanda-123 Bruno-111
  5. EAmanda Bruno 123 111
Revelar gabarito e comentário

GabaritoA — 1 2

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comando awk no Linux: a variável NR

Gabarito: letra A. O comando awk '{print NR}' dados.txt imprime o número do registro (linha) atual — a variável interna NR — para cada linha processada. Como o arquivo tem duas linhas, a saída é 1 2. A pegadinha está em confundir NR (número da linha) com $0 (linha inteira), $1 (primeiro campo) ou $2 (segundo campo).

O awk é um processador de texto que lê um arquivo linha por linha e executa um programa (entre chaves) para cada linha. Dentro desse programa, existem variáveis internas automáticas: NR guarda o número da linha atual (começando em 1), NF guarda o número de campos da linha, $0 representa a linha inteira, $1 o primeiro campo, $2 o segundo, e assim por diante. No comando do enunciado, o programa é {print NR} — ou seja, para cada linha, ele imprime apenas o valor de NR.

Vamos aplicar ao arquivo dados.txt:

  • Linha 1: Amanda 123NR = 1 → imprime 1

  • Linha 2: Bruno 111NR = 2 → imprime 2

Como o awk processa as linhas em sequência e o print adiciona uma quebra de linha após cada valor, a saída final é:

1
2

Na tela, isso aparece como 1 2 (um em cada linha). A alternativa A é a única que corresponde exatamente a esse comportamento.

A confusão mais comum é achar que NR imprime o conteúdo da linha. Isso seria $0. Outra confusão é achar que imprime o primeiro ou o segundo campo — isso seria $1 ou $2. A banca explora exatamente essa troca: em vez de NR, o candidato pode ler mentalmente $1 (Amanda Bruno), $2 (123 111) ou $0 (Amanda 123 Bruno 111).

NÃO CAIA NESSA!

A banca troca a variável NR (número da linha) por $0 (linha inteira), $1 (primeiro campo) ou $2 (segundo campo). O candidato que decora a sintaxe do awk sem entender o significado de cada variável cai nas alternativas B, C ou E. A dica é: NR = Número do Registro; $0 = linha inteira; $1 = primeiro campo; $2 = segundo campo.

  1. 1NR = número da linha
  2. 2$0 = linha inteira
  3. 3$1 = 1º campo
  4. 4$2 = 2º campo
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

O comando awk '{print NR}' dados.txt imprime o número da linha atual para cada linha do arquivo. Como o arquivo tem duas linhas, a saída é 1 e 2, uma em cada linha. A alternativa A (1 2) é exatamente o que o comando retorna.

Alternativa B — ❌ Incorreta

Amanda Bruno seria a saída se o comando fosse awk '{print $1}' dados.txt — ou seja, imprimir o primeiro campo de cada linha. A alternativa troca NR por $1. O NR não tem relação com o conteúdo dos campos; ele é apenas o contador de linhas.

Alternativa C — ❌ Incorreta

123 111 seria a saída se o comando fosse awk '{print $2}' dados.txt — imprimir o segundo campo de cada linha. Novamente, a alternativa troca NR por $2. O NR não acessa o conteúdo da linha, apenas o número sequencial dela.

Alternativa D — ❌ Incorreta

Amanda-123 Bruno-111 seria a saída se o comando fosse awk '{print $1 "-" $2}' dados.txt — imprimir o primeiro campo, um hífen e o segundo campo de cada linha. A alternativa inventa uma formatação que não existe no comando original, que imprime apenas NR.

Alternativa E — ❌ Incorreta

Amanda Bruno 123 111 seria a saída se o comando fosse awk '{print $0}' dados.txt — imprimir a linha inteira de cada registro. A alternativa troca NR por $0. O $0 representa a linha completa, enquanto NR é apenas o número da linha.

Gabarito: letra A

Link permanente: /questoes/vu197403