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.
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:
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 (':').
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.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.
Crie sua conta no Exercism para aprender e dominar Arturo com 79 exercícios e mentoria humana de verdade, tudo de graça.