Analise o seguinte script que usa a instrução awk: #!/bin/b...

Próximas questões
Com base no mesmo assunto
Q3508321 Programação

Analise o seguinte script que usa a instrução awk:



#!/bin/bash


echo "chave1=valorA;chave2=valorB" | awk -F '[=;]' '{ print $2, $4 }'



Considerando o funcionamento do comando awk com os parâmetros utilizados, assinale a alternativa que representa a saída exata deste script: 

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - valorA valorB

Tema central da questão: A questão aborda interpretação de comandos do Shell com uso do awk, ferramenta poderosa para manipulação e extração de dados em textos, muito cobrada em concursos para área de TI.

Resumo teórico: O awk é uma linguagem de processamento de texto que permite, por meio de padrões e ações, selecionar e manipular partes de arquivos de texto. O parâmetro -F define o delimitador (field separator). Aqui, -F '[=;]' indica que tanto o sinal "=" quanto o ";" separam os campos. Quando usamos $2 ou $4, estamos acessando, respectivamente, o segundo e o quarto campo da linha.

Exemplo prático na questão:

A string "chave1=valorA;chave2=valorB" é dividida assim:
[1] chave1 [2] valorA [3] chave2 [4] valorB

Logo, $2 = valorA e $4 = valorB, e por isso a saída é valorA valorB.

Justificativa da alternativa correta:

A alternativa C reflete exatamente o que o comando awk imprime ao selecionar os campos $2 e $4 dessa linha de entrada.

Análise das alternativas incorretas:

  • A - chave1 chave2: Mostra os campos $1 e $3, não os que o script pede ($2 e $4).
  • B - chave1=valorA chave2=valorB: Seria a linha inteira, e não os campos extraídos.
  • D - valorA;chave2: Inclui o delimitador “;”, o que não acontece porque o delimitador serve apenas para separar.
  • E - A B: Não corresponde a nenhum campo da extração feita.

Dica de interpretação: Sempre observe qual delimitador (-F) é usado! Pegadinhas comuns incluem confundir delimitadores e selecionar campos errados. Leia com atenção tanto o comando awk quanto o texto de entrada.

Fontes: Manual oficial GNU Awk; “The AWK Programming Language” (Aho, Kernighan, Weinberger).

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

c-

awk -F [] define um separador definido em regex para delimitar a string em echo " ". awk -F '[=;]' significa "procurar os simbolos '=' & ';' e usá-los como separador da string. A lacuna em ' ' combinada com print{$2, $4} permitem ao método print exibir a string cortada como unidades definidas em $2 e $4. 'print {$2, $4}' exibe o conteúdo da 2° e 4° unidades da string segmentada.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo