use unix grep to conduct a web search on a static site the web server code would have to execute the command-line program @grep -R --exclude-dir=versions --include='*.txt' "Test Post 8Apr2016 1130" .@ the search would start in document root. check string to permit only alphanumeric, underscore, and hyphen. maybe the period. http://www.perlmonks.org/bare/?node_id=114642 h2. Examples @ grep -i -R --exclude-dir=versions --include='*.txt' "4APR2016" .@ ./note-4apr2016-2102-edt.txt:# Note: 4Apr2016 2102 EDT ./2016/04/04/test-post-4apr2016-1312.txt:# test post 4apr2016 1312 ./2016/04/04/test-1313.txt:# test post 4apr2016 1313 ./index.txt:* [Note: 4Apr2016 2102 EDT](/note-4apr2016-2102-edt.html) ./tag-note.txt:* [Note: 4Apr2016 2102 EDT](/note-4apr2016-2102-edt.html) hr. @grep -i -R --exclude-dir=versions --include=*.txt "comet" .@ code. ./2016/04/17/test-post-17apr2016-2103.txt:this is a sentence that mentions my old cat Comet. ./2016/04/17/test-post-17apr2016-2103.txt:asf jlajsflja lfjal fjla jf lja sf af but this one does mention COMET again, along with some gibberish text a ljaslfj al ksjflkaj fja lja fjalf jal fjalj flaj fl jalf jlaj fll ajsf jl fjljf ./2016/04/17/test-post-17apr2016-2103.txt:finally, i miss comet who passed away in May 2010 at the age of 18-years-old. almost six years ago already. code.. if want to stop the search on each file after only one match, then add the @-m 1@ @grep -i -R -m 1 --exclude-dir=versions --include=*.txt "comet" .@ Only the first hit will get displayed. perl script example not executed via the web server. fence. #!/usr/bin/perl -wT use strict; my $string="comet"; # actually comes from CGI $string=~s/[^\w]//; # remove non word chars # clean up environment delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; $ENV{'PATH'} = '/bin:/usr/bin'; if (open (GREP, "-|")) { print ; } else { exec ("grep", "-i", "-R", "--exclude-dir=versions", "--include=*.txt", $string, ".") || die "Error exec'ing command", "\n"; } close (GREP); fence.. http://www.gnu.org/software/grep/manual/grep.html