Grep

Grep

Médio

Introdução

Você arrumou um emprego em uma biblioteca local, ajudando a organizar a coleção de livros antigos dela. Os estudantes que frequentam a biblioteca vivem caçando citações que lembram só pela metade para citar em seus trabalhos acadêmicos. Em vez de ler manualmente cada livro de capa a capa, você decide criar uma pequena ferramenta para escaneá-los em busca dessas citações parciais.

Instruções

Busque em arquivos as linhas que correspondem a uma string de busca e retorne todas as linhas correspondentes.

O comando grep do Unix busca, nos arquivos, as linhas que correspondem a uma expressão regular. Sua tarefa é implementar um comando grep simplificado, que permite buscar por strings fixas.

O comando grep recebe três argumentos:

  1. A string a ser buscada.
  2. Zero ou mais flags para personalizar o comportamento do comando.
  3. Um ou mais arquivos nos quais buscar.

Em seguida, lê o conteúdo dos arquivos especificados (na ordem especificada), encontra as linhas que contêm a string de busca e, por fim, retorna essas linhas na ordem em que foram encontradas. Ao buscar em vários arquivos, cada linha correspondente é precedida pelo nome do arquivo e dois-pontos (':').

Flags

O comando grep aceita as seguintes flags:

  • -n Adiciona o número da linha e dois-pontos (':') no início de cada linha da saída, colocando o número depois do nome do arquivo (se houver).
  • -l Exibe apenas os nomes dos arquivos que contêm pelo menos uma linha correspondente.
  • -i Faz a correspondência usando uma comparação que ignora maiúsculas e minúsculas.
  • -v Inverte o programa: coleta todas as linhas que não correspondem.
  • -x Busca apenas as linhas em que a string de busca corresponde à linha inteira.

Instruções específicas do Arturo

Diferente da maioria dos exercícios de Arturo, o src/grep.art não será importado diretamente pela suíte de testes. Em vez disso, sua solução será executada como um script Arturo independente, recebendo uma série de argumentos de linha de comando. Você pode usar argarg ou argsargs para acessar esses argumentos de linha de comando, que contêm zero ou mais flags, um padrão de busca e um ou mais nomes de arquivo. Esses arquivos são criados e preenchidos pela suíte de testes em tempo de execução. Sua solução precisará ler o arquivo solicitado e escrever a saída esperada na saída padrão.

Editar via GitHub O link abre em uma nova janela ou aba
Arturo Exercism

Tudo pronto para começar Grep?

Crie sua conta no Exercism para aprender e dominar Arturo com 79 exercícios e mentoria humana de verdade, tudo de graça.