在我的实验室中,我们正在尝试构建一个允许用户输入的网络查询对于特定目录上的 , find
, ack
。grep
网络将返回一个 HTML,其中包含可点击文件列表的表格(点击它们将下载文件)。
例如,在此界面中,用户将在浏览器的表单中键入一个单词,系统将调用find . -name "*word*"
并发送回带有结果的 HTML。
以前有过类似的事情吗?我们希望避免重新发明轮子。哪些工具包、实用程序或软件包有助于构建此功能?
答案1
在这种情况下,我最喜欢的解决方案是 CGI perl 脚本。通过这种方式,您可以处理特殊情况,例如
word = " -delete -name "
并且您必须提供从文件系统中的路径到 Web 服务器 URL 的映射。
答案2
最简单地说,您的要求非常简单:
超文本标记语言
<html><body>
<form action="../cgi-bin/find_files.pl" method="POST">
<input type="text" name=name></input>
<input type=submit>
</form>
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>";
答案3
这是一个基于网络的工具,就像您所要求的那样,它自 2009 年以来就已经存在:https://www.online-utility.org/text/grep.jsp
但它只适用于静态文本,因此您必须找到一种方法将本地目录列表放入浏览器中。