私の研究室では、ユーザー入力が可能なネットワークを構築しようとしています。お問い合わせ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年から使用されてきたWebベースのツールです。https://www.online-utility.org/text/grep.jsp
ただし、これは静的テキストでのみ機能するため、ローカルディレクトリのリストをブラウザにインポートする方法を見つける必要があります。