Escrito em node, é uma ferramenta muito simples para realizar buscas em pastas e arquivos a partir do terminal, utilizando padrão E/AND para filtrar os arquivos, independende da ordem das palavras ou se estão em sequencia, podendo personalizar os o filtro conforme opções disponiveis em cada comando. Veja como usar cada comando!
Uma pequena experiência de aprendizagem js e node (e apenas se divertindo).
- node
- npm
$ npm install -g @donatocardoso/busca-cli
Ou
$ yarn global add @donatocardoso/busca-cli
Outra alternativa, você pode baixar este repositório e instalar a partir da fonte:
$ git clone https://github.com/donatocardoso/busca-cli.git
$ cd busca-cli
$ npm install
$ npm link
Para utilizar a ferramenta use da opção "-a" ou "--ajuda" para obter ajuda:
$ npx @donatocardoso/busca-cli --ajuda
Saída:
Usage: busca-cli [comando]
Options:
-v, --versao Exibi a versão atual
-a, --ajuda Exibi ajuda para usar o comando
Commands:
arquivo [options] <texto> Verifica se o(s) arquivo(s) possue(em) o texto informado
carregar [options] Carrega em memória os arquivos do diretório informado
pasta [options] <texto> Busca arquivos no diretório desejado que possuem o texto informado
Para os próximos exemplos vamos considerar os seguintes arquivos:
nome: ./pasta01/arquivo01.txt
conteúdo: night catches us 2010 anthony mackie kerry washington wendell pierce tanya hamilton tanya hamilton
nome: ./pasta02/arquivo02.txt
conteúdo: Night catches us 2010 anthony mackie kerry washington Wendell pierce tanya hamilton tanya Hamilton
Exemplos de uso dos comandos:
- busca-cli arquivo
-
Realiza uma busca com uma sentença chave nos arquivos informados, veja a estrutura do comando:
-
O parametro texto é obrigatório e deve ser informado com o uso de aspas simples ou duplas.
-
A opção caminhos é obrigatório e deve ser informada com um ou mais valores.
$ npx @donatocardoso/busca-cli arquivo [opcoes] <texto> -c [caminhos...]
- As opções do comando são:
-c, --caminhos [caminhos...] Arquivo(s) em que a verificação será realizada
-d, --detalhes Retorna detalhes do(s) arquivo(s)
-e, --exato Busca pela sentença exata informada
-s, --sensivel Diferencia maiúscula de minúscula
-a, --ajuda Exibi ajuda para usar o comando
- Exemplos de chamada:
$ npx @donatocardoso/busca-cli arquivo "night wendell hamilton" -c ./pasta01/arquivo01.txt ./pasta02/arquivo02.txt
$ npx @donatocardoso/busca-cli arquivo -des "night wendell hamilton" -c ./pasta01/arquivo01.txt ./pasta02/arquivo02.txt
$ npx @donatocardoso/busca-cli arquivo -d -e -s "night wendell hamilton" -c ./pasta01/arquivo01.txt ./pasta02/arquivo02.txt
- busca-cli pasta
-
Realiza uma busca com uma sentença chave nas pastas informadas, veja a estrutura do comando:
-
O parametro texto é obrigatório e deve ser informado com o uso de aspas simples ou duplas.
-
A opção caminhos é obrigatório e deve ser informada com um ou mais valores.
$ npx @donatocardoso/busca-cli pasta [opcoes] <texto> -c [caminhos...]
- As opções do comando são:
-c, --caminhos [caminhos...] Diretório(s) em que a verificação será realizada
-d, --detalhes Retorna detalhes dos arquivos encontrados
-e, --exato Busca pela sentença exata informada
-r, --recursivo Busca na pasta e sub-pastas do caminho informado
-s, --sensivel Diferencia maiúscula de minúscula
-a, --ajuda Exibi ajuda para usar o comando
- Exemplos de chamada:
$ npx @donatocardoso/busca-cli pasta "night wendell hamilton" -c ./pasta01 ./pasta02
$ npx @donatocardoso/busca-cli pasta -ders "night wendell hamilton" -c ./pasta01 ./pasta02
$ npx @donatocardoso/busca-cli pasta -d -e -r -s "night wendell hamilton" -c ./pasta01 ./pasta02
- busca-cli carregar
-
Carrega as pastas e/ou arquivos informados em memória e em seguida faz solicitação de uma entrada com uma sentença chave para realizar a busca, veja a estrutura do comando:
-
A opção caminhos é obrigatório e deve ser informada com um ou mais valores.
$ npx @donatocardoso/busca-cli carregar [opcoes] -c [caminhos...]
- As opções do comando são:
-c, --caminhos [caminhos...] Arquivo(s) em que a verificação será realizada
-d, --detalhes Retorna detalhes dos arquivos encontrados
-e, --exato Busca pela sentença exata informada
-r, --recursivo Busca na pasta e sub-pastas do caminho informado
-s, --sensivel Diferencia maiúscula de minúscula
-a, --ajuda Exibi ajuda para usar o comando
- Exemplos de chamada:
$ npx @donatocardoso/busca-cli carregar "night wendell hamilton" -c ./pasta01 ./pasta02/arquivo02.txt
$ npx @donatocardoso/busca-cli carregar -ders "night wendell hamilton" -c ./pasta01 ./pasta02/arquivo02.txt
$ npx @donatocardoso/busca-cli carregar -d -e -r -s "night wendell hamilton" -c ./pasta01 ./pasta02/arquivo02.txt
Os Testes Unitários são bem simples de ser executados, o arquivo "jest.setup.js" já realiza as configurações básicas para essa situação, sendo necessário executar somente um dos seguintes comandos, escolha um conforme sua necessidade:
$ npm test // executa os testes
$ npm test:coverage // executa os testes e exibi a cobertura dos testes
Ou
$ yarn test // executa os testes
$ yarn test:coverage // executa os testes e exibi a cobertura dos testes
Caso ainda queira realizar testes com uma amostragem maior há um "./example/movies.zip" com vários arquivos preparados, faça a descompactação dos arquivos e informe-os conforme é solicitado nos comandos, exemplo:
$ npx @donatocardoso/busca-cli pasta -ers ./example/movies