Questão de Sistemas Operacionais — Ubuntu — VUNESP 2023
Sistemas Operacionais›Ubuntu
Código
vu197358
Banca
VUNESP
Órgão
Pref Campinas
Ano
2023
Cargo
Ana TI ( )
Considere o seguinte comando digitado no terminal de um sistema operacional Ubuntu. awk {print $0} log.txt É correto afirmar que o retorno desse comando será
Ao nome do arquivo.
Btodo o conteúdo do arquivo.
Ca primeira linha do arquivo.
Da primeira coluna do arquivo.
Ea primeira letra de cada linha do arquivo.
Revelar gabarito e comentário▾
GabaritoB — todo o conteúdo do 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 Ubuntu
Gabarito: letra B. O comando awk '{print $0}' log.txt imprime todo o conteúdo do arquivo log.txt, pois $0 representa a linha inteira atual e o awk processa o arquivo linha por linha, imprimindo cada uma delas. Essa é a função básica do awk como filtro de texto, e a alternativa B é a única que descreve corretamente esse comportamento.
O awk é uma linguagem de programação orientada a processamento de texto, muito utilizada em sistemas Unix/Linux para manipular arquivos e gerar relatórios. Ele lê um arquivo de entrada linha por linha e, para cada linha, executa um conjunto de instruções definidas entre chaves {}. No comando awk '{print $0}' log.txt, a instrução é print $0, que imprime o conteúdo da linha atual. A variável $0 no awk representa a linha inteira, enquanto $1, $2, etc., representam os campos (colunas) separados por espaços ou por um delimitador definido com a opção -F. Por exemplo, se o arquivo tiver a linha "João 25", $0 será "João 25", $1 será "João" e $2 será "25".
O comando awk é frequentemente usado para extrair colunas específicas de um arquivo, como em awk '{print $1}' log.txt, que imprimiria apenas a primeira coluna de cada linha. No entanto, quando se usa $0, o comando imprime a linha inteira, sem qualquer filtro ou transformação. Isso é útil para simplesmente exibir o conteúdo do arquivo, funcionando de forma semelhante ao comando cat, mas com a flexibilidade adicional de poder aplicar condições e ações mais complexas.
A pegadinha desta questão está em confundir $0 com $1 ou com outros campos. Muitos candidatos, ao verem $0, podem pensar que se refere à primeira coluna ou à primeira linha, mas na verdade $0 é a linha inteira. Além disso, é comum confundir o awk com outros comandos de texto, como head, tail ou cut, que têm comportamentos diferentes. O head exibe as primeiras linhas, o tail as últimas, e o cut extrai colunas específicas. O awk é mais poderoso, pois permite processamento condicional e manipulação de campos.
Para resolver questões sobre comandos de texto, é essencial conhecer o significado das variáveis especiais do awk: $0 (linha inteira), $1, $2, etc. (campos), NR (número da linha atual), NF (número de campos na linha). Além disso, é importante saber que o awk pode ser usado com padrões, como em awk '/erro/ {print}' log.txt, que imprime apenas as linhas que contêm a palavra "erro". Dominar esses conceitos é fundamental para acertar questões de concursos que cobram comandos de manipulação de texto.
1Lê linha por linha
2Executa a ação entre {}
3$0 = linha inteira
4Imprime cada linha
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
O comando não imprime o nome do arquivo. O nome do arquivo é apenas um argumento passado ao awk para indicar qual arquivo deve ser processado. Para imprimir o nome do arquivo, seria necessário usar uma variável como FILENAME dentro do programa awk, por exemplo: awk '{print FILENAME}' log.txt. A alternativa confunde o argumento do comando com a saída gerada.
Alternativa B — ✅ Correta ⟵ GABARITO
Como explicado, $0 representa a linha inteira atual, e o awk processa todas as linhas do arquivo, imprimindo cada uma delas. Portanto, o retorno do comando é todo o conteúdo do arquivo log.txt, linha por linha, sem alterações. Essa é a função básica do awk quando usado com print $0.
Alternativa C — ❌ Incorreta
O comando não imprime apenas a primeira linha. Para isso, seria necessário usar o comando head -1 log.txt ou, com awk, uma condição como awk 'NR==1 {print}' log.txt. O awk processa todas as linhas, a menos que haja um padrão que restrinja a ação. A alternativa confunde o comportamento do awk com o do head.
Alternativa D — ❌ Incorreta
O comando não imprime a primeira coluna. Para imprimir a primeira coluna, seria necessário usar $1 em vez de $0, como em awk '{print $1}' log.txt. A alternativa confunde $0 (linha inteira) com $1 (primeiro campo).
Alternativa E — ❌ Incorreta
O comando não imprime a primeira letra de cada linha. Para isso, seria necessário usar funções de string, como substr($0,1,1), ou comandos como cut -c1 log.txt. A alternativa é uma interpretação equivocada do que $0 representa.