Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — VUNESP 2023

Sistemas OperacionaisLinux
Código
vu197280
Banca
VUNESP
Órgão
UNICAMP
Ano
2023
Cargo
PTIC ( )
Considere o seguinte comando utilizado no bash de um sistema operacional Linux:   awk '{print}' texto.txt   Sabendo que o arquivo texto.txt contém diversas linhas com diferentes caracteres, é correto afirmar que o conteúdo apresentado por esse comando será
  1. Ao nome do arquivo.
  2. Bapenas as linhas que apresentam a palavra print no arquivo.
  3. Ctodas as linhas com todos os caracteres presentes no arquivo.
  4. Da palavra print.
  5. Enulo.
Revelar gabarito e comentário

GabaritoC — todas as linhas com todos os caracteres presentes no arquivo.

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

Gabarito: letra C. O comando awk '{print}' texto.txt exibe todas as linhas com todos os caracteres presentes no arquivo, pois {print} é a ação padrão do awk que imprime cada linha lida, e o arquivo texto.txt é o argumento de entrada. A alternativa correta é a C.

O awk é um processador de texto extremamente versátil no Linux, usado para manipular e extrair informações de arquivos de texto. Sua sintaxe básica é awk 'padrão {ação}' arquivo. Quando nenhum padrão é especificado, como no comando da questão, a ação é executada para todas as linhas do arquivo. A ação {print} (sem argumentos) imprime a linha inteira, exatamente como ela é, com todos os seus caracteres.

Para entender melhor, vamos decompor o comando:

  • awk: invoca o interpretador awk.

  • '{print}': é o programa awk, composto por uma ação. A ausência de um padrão antes da ação significa que ela se aplica a todas as linhas.

  • texto.txt: é o arquivo de entrada que o awk processa linha por linha.

Na prática, se o arquivo texto.txt contiver as linhas "Olá, mundo!", "12345" e "Linha com espaços", o comando exibirá exatamente essas três linhas, na mesma ordem, sem nenhuma alteração. O print sem argumentos é um atalho para print $0, onde $0 representa a linha inteira atual.

A pegadinha desta questão está em confundir o awk com outros comandos de filtro, como o grep. Enquanto o grep procura por padrões específicos, o awk é um processador de texto que pode executar ações em cada linha. A ausência de um padrão de busca no comando faz com que ele simplesmente ecoe o conteúdo do arquivo.

Guarde a distinção fundamental: awk '{print}' imprime tudo, enquanto grep 'padrão' imprime apenas as linhas que contêm o padrão. É exatamente essa diferença que separa a alternativa correta das incorretas.

  1. 1Lê linha por linha
  2. 2Sem padrão → todas as linhas
  3. 3Ação {print} → imprime $0
  4. 4Exibe linha inteira
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O comando awk não exibe o nome do arquivo. Para isso, seria necessário usar comandos como ls ou echo. O awk processa o conteúdo do arquivo, não o seu nome.

Alternativa B — ❌ Incorreta

Esta alternativa confunde o awk com o grep. O grep é o comando que filtra linhas que contêm um padrão específico (como a palavra "print"). No awk, a palavra print é uma ação (um comando interno), não um padrão de busca. Como não há padrão definido, todas as linhas são processadas, não apenas as que contêm a palavra "print".

Alternativa C — ✅ Correta ⟵ GABARITO

Como explicado, a ação {print} sem padrão imprime todas as linhas do arquivo de entrada, com todos os seus caracteres. O awk lê o arquivo linha por linha e executa a ação para cada uma delas, resultando na exibição integral do conteúdo do arquivo.

Alternativa D — ❌ Incorreta

A palavra "print" é apenas a ação que o awk executa, não o conteúdo que ele exibe. O comando não imprime a palavra "print" em si, mas sim o conteúdo das linhas do arquivo.

Alternativa E — ❌ Incorreta

O comando não produz saída nula. Como o arquivo contém linhas, o awk as processará e as exibirá. A saída seria nula apenas se o arquivo estivesse vazio, o que não é o caso, pois o enunciado afirma que ele contém diversas linhas.

Gabarito: letra C

Link permanente: /questoes/vu197280