findwild User Guide v. 1.1

Introduction


findwild is (yet another) program to search for files. It works quite differently from other file search programs. findwild offers the following search criteria:
findwild is especially useful for programmers needing to search a large source library for references to a symbolic name.

License and Warranty

findwild is a free program licensed under the GNU General Public License, Version 2 (from the Free Software Foundation). findwild is not warranted for any purpose whatsoever, but if you find a bug, I will try to fix it.

Origin and Contact

findwild originates from my web site at:
http://kornelix.squarespace.com/findwild
Other web sites may offer it for download. Modifications could have been made.
If you have questions, suggestions or a bug to report: kornelix@yahoo.de

Screenshot




findwild usage

Refer to the above screenshot as needed to better understand the following.


The toolbar [search] button starts a dialog where you enter search criteria. You can use wildcards * and ? in all search criteria. * matches any string, including a zero length string, and ? matches any single character. You can make multiple entries for search and ignore files and strings, separated with blanks. If desired, enter a date range using either days ago (-9999 to 0) or yyyy-mm-dd. When done, use [search all] to begin the search.


findwild selects and reports files according to the following rules: Wildcard file names used for searching are made from search path + search file(s).
If this results in ** where they are joined, then * is substituted.


Example: search path =
/usr/include/* and search file = *.h

This will result in a combined search string of
/usr/include/*.h which will include files such as /usr/include/err.h and /usr/include/gtk-2.0/gdk/gdkgc.h (* matches all intermediate directories).

The search file(s) may also include subdirectories, e.g. /usr/include/* + */gtk*/*.h is a legitimate combination that will search all files named *.h within /usr/include and within any intermediate directory beginning with gtk.

Delimiters define and separate strings in the searched files. Each file string, so defined, will be matched against the search and ignore strings. If you use no delimiters, then each file record (row of text) is treated as one string for matching.

Note that wildcards are needed to make findwild work like other file search programs. A record containing the string xxx#aaabbbbcc@yyy will not match abbb but will match *abbb* and a*bcc (assuming that '#' and '@' are included in the delimiters list).

It makes no sense to include a delimiter character in the search string. If you need to search for strings containing any of the default delimiters, then remove these delimiters for this search. The default delimiters work as needed for most cases.

If list matching records is checked, the output includes all records with matching strings. Otherwise only file names are reported along with the count of matching records.

Each new set of search criteria is saved in the combo box drop-down lists, and these can be recalled using the buttons. The button [save criteria] saves the most recent 20 entries in the file ~/.findwild/search_criteria which also initializes the next findwild session.


The toolbar [save] button saves the search results to a file. [print] prints them on the default printer. [clear] clears the output window. [kill] stops a running search.


The button [search hits] uses the list of files found by the previous search instead of using the search path and search file(s) inputs. If you are narrowing the search criteria to home in on the desired files, this can speed things up.


Note on file types
It would be logical to automatically exclude non-text files from the search. In Linux, reliable determination of text files is quite involved: fork a "file" shell command which reads the file and processes it against the "magic numbers" file to make an educated guess at what kind of file it is. I experimented and concluded that it is usually faster to simply process all files. This could produce meaningless accidental search string matches for binary files. It is better to specify file types in the search criteria, e.g. *.txt, *.html, etc.