Skip to content

FGV-EMAp/terminal_mining-time

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Review Assignment Due Date

Minerando Textos no Terminal

Usando sed e outras ferramentas do terminal, o aluno deve manipular e minerar arquivos de texto, além de se familiarizar com o uso de regex e paths.

Descrição

Seu objetivo é resolver todas as tarefas usando apenas recursos do terminal, Bash no Linux e GitBash no Windows.

Coloque cada solução em um script shell separado, que já está criado (vazio) na pasta 'Solução' com os nomes ex_1.sh, ex_2.sh, etc.

Cada um destes scripts, quando executado, deve escrever a resposta em um arquivo chamado resposta_ex_1, resposta_ex_2, e assim por diante.

Exercícios

Na pasta Dados está a obra completa de Machado de Assis na forma de vários arquivos de texto, distribuídos em vários sub-diretórios.

  1. Quantas palavras tem a obra completa?
    • Dica: Experimente concatenar todos os arquivos em um só para facilitar a contagem.
  2. Liste os títulos de todas as obras (todas as pastas), em ordem alfabética.
  3. Agora, liste somente os contos (seus títulos) em ordem cronológica de publicação. O resultado deve ser algo como:
Conto, Contos Fluminenses, 1870
Conto, Historias da Meia-Noite, 1873
...
  1. Utilizando o conto macn001.txt , liste as palavras distintas que aparecem nele em ordem crescente de frequência, precedidas do número de ocorrências de cada uma.
    • Dica 1: Para facilitar comece colocando cada palavra em uma linha separada:
    $ echo "gato sapato" | sed 's/ /\n/g'
    No código acima, a expressão regular s/ /\n/g substitui todos os espaços por quebras de linha (\n).
    • Dica 2: Quando tratamos texto, o computador vê qualquer alteração na string como uma palavra completamente diferente, como é o caso das letras maiúsculas e minúsculas, ou palavras acompanhadas de pontuação. Utilize os comandos tr e sed para uniformizar o texto.
    • Dica 3: Utilize os comandos sort e uniq.

O resultado deve ser algo como:

6 romance
6 rompeu
6 rosto
...
  1. Repita o que foi feito no exercício anterior, mas agora para todas as obras. Lembre-se das dicas dadas nas outras questões!
  2. Usando o resultado do exercício anterior, liste apenas as palavras que aparecem mais de 1000 vezes.
    • Dica: Considere a seguinte linha de código para o pipeline desse exercício: grep -E "^ *[[:digit:]]{4}";

Dicas de grep.

Entrega

Coloque os scripts com as suas soluções e os arquivos de resposta no diretório Solução deste repositório. ao final, não esqueça de fazer um commit e um push.

About

terminal_mining-time created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages