SóProvas


ID
2858734
Banca
CCV-UFC
Órgão
UFC
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Utilizando um sistema operacional Linux e apenas comandos nativos, precisamos converter um arquivo contendo quebras de linha no estilo DOS (CRLF) em um arquivo contendo quebras de linha no estilo UNIX (LF). Suponha para esta questão que o arquivo no estilo DOS é chamado 'dosfile', e queremos o conteúdo modificado no arquivo 'unixfile'.

Alternativas
Comentários
  • Correto D: tr -d '\r' < dosfile > unixfile

  • tr (man tr) ele é utilizado para traduzir, comprimir e/ou deletar caracteres da entrada padrão (stdin) escrevendo o resultado na saída padrão (stdout). Ou seja, o comando tr no linux é  utilizado para substituição de um valor por outro, basicamente especificamos o valor a procurar e o valor a substituir. Como o comando tr não trabalha com arquivos é necessário usar um pipe ou redirecionamento para que ele receba os valores

  • Introdução:

    • DOS (CRLF) O CR e o LF são combinações de dois caracteres: um retorno de carro (CR) (nome é inspirado no movimento das máquinas de escrever feito com a ajuda de uma alavanca para reposicioná-la no início da próxima linha ao atingir o final da atual) seguido por um avanço de linha (LF) .

    Em suma, após processar um par CR-LF, a cabeça da impressora deverá estar no canto esquerdo (CR) e ter avançado uma linha da página (LF).

    • UNIX (LF) Em arquivos de texto Unix, uma quebra de linha é um único caractere: o avanço de linha (LF).

    Vamos entender as alternativas.

    • Comentário letra A: O comando sed converte o caractere da nova linha do Unix para o formado DOS "sed 's/$'"/`echo \\\r`/" # comando usado com o bash". Como queremos converter para o DOS, devemos usar o comando do DOS, não do bach. Por isso a letra está incorreta.
    • Comentário da letra B: “dos2unix” funciona no ambiente Linux para conversão de texto para Linux e Windows. Veja a sintaxe: dos2unix [ opções ] [ ARQUIVO ...] [-n INFILE OUTFILE ...]. Agora confronte com a letra “B”. Perceba que não há, por exemplo, o parâmetro “-n”. Que indica o novo modo de arquivo. Ele pega a entrada “INFILE” e grava a saída no arquivo “OUTFILE”.
    • Comentário da letra C: Desconheço a existência do parâmetro \n do comando strip. Mas já analisando de forma geral. O strip descarta símbolos de arquivos com o objetivo de deixa-lo mais leve.
    • Comentário da letra D: Há dois colegas que já comentaram, mas apenas reforço que como a questão pediu do DOS para o formado unix, é interessante usar o "tr". "tr -d \r arquivo_saida"
    • Comentário da letra E: nano é um editor de texto para sistemas Unix-like. Ele não converte.

     Observações:

    • (1) questão pesadíssima. Creio que para sabê-la a pessoa teria que ser da área ou ter usado alguns destes comandos. Por isso, se você errou, não se culpe.
    • (2) Deixei na resposta deste comentário as referências. Não deixei aqui, pois a questão ficaria muito grande.

    Em frente e enfrente.