Web front-end para localizar / grep / ack

2

No meu laboratório, estamos tentando criar uma web que permita ao usuário inserir consultas para find , ack , grep em um diretório específico. A web retornaria um HTML com uma tabela de uma lista de arquivos clicáveis (clique sobre eles faria o download do arquivo).

Por exemplo, nessa interface, o usuário digitaria uma palavra em um formulário no navegador, e o sistema chamaria find . -name "*word*" e retornaria um HTML com o resultado.

Já foi feito algo assim antes? Gostaríamos de evitar reinventar a roda. Quais kits de ferramentas, utilitários ou pacotes seriam úteis para construir essa funcionalidade?

    
por Amelio Vazquez-Reina 15.10.2012 / 19:22

3 respostas

2

Minha solução favorita neste caso é um script perl CGI. Desta forma, você pode lidar com casos especiais como

word = " -delete -name "

e você precisa fornecer um mapeamento de um caminho em seu sistema de arquivos para um URL do servidor da web.

    
por 23.04.2013 / 16:06
1

Na sua forma mais simples, o que você está pedindo é muito fácil:

HTML

<html><body>
 <form action="../cgi-bin/find_files.pl" method="POST">
  <input type="text" name=name></input>
  <input type=submit>
 </form>

Script Perl

#!/usr/bin/perl
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser); 
my $cgi = new CGI;
my $target='/tmp';   ## directory to search in
my $name = $cgi->param('name') || carp("no search terms entered");
my $res='find $target -name $name';
my @lines=split(/\n/,$res);
print header;
print "<table>";
foreach my $line (@lines) {
    print "<tr><td>$line</td></tr>";
}
print "</table>";
    
por 03.08.2013 / 18:26
-1

Esta é uma ferramenta baseada na Web como a que você solicitou desde 2009: link

Mas ele só funciona em texto estático, então você precisa descobrir uma maneira de colocar as listagens de diretórios locais no navegador.

    
por 30.01.2018 / 14:32