[Insight-users] bash script to search example files for terms

Darren Weber darren.weber.lists at gmail.com
Mon Oct 12 16:15:29 EDT 2009


Hi Luis,

Please feel free to distribute it with the LGPL license (or a BSD license,
or something that is compatible with the ITK license and general OSI
principles).

For a more portable solution, the itk*Path variables might be obtained
automatically (how?).  The search path could be an input parameter (but that
almost defeats the convenience of this bash wrapper around a grep process).

The grep command options list the files where the search term is found (not
the lines of those files where the search term occurs).  For a bit more
value, it's possible to modify the script so that the entire grep loop
returns an array of file paths, which could be piped into something like:
less -p ${searchTerm} ${fileArray}[@]
Then less would provide the means to page through the files.

Here is another variation on the same thing - this one searches the testing
path and it includes the .tcl and .py example files in the search.  It might
be called 'itkSearchFiles.bash' ?

###### BEGIN SCRIPT
#!/bin/bash

if [ $# -lt 1 ]; then
    echo "$0 'search term' ['search term' ...]"
    exit 1
fi

itkExamplePath="/opt/local/share/InsightToolkit/examples"
itkTestingPath="/opt/local/share/InsightToolkit/testing/Code"

for term in $@; do
    echo
    echo "Search term: ${term}"
    for itkPath in "${itkExamplePath}" "${itkTestingPath}" ; do
        if [ ! -d ${itkPath} ]; then
            echo "Path not found: ${itkPath}"
        fi
        echo "Searching ITK files in: ${itkPath}"
        grep -l -E -e ${term} ${itkPath}/*/*.cxx
        grep -l -E -e ${term} ${itkPath}/*/*.tcl
        grep -l -E -e ${term} ${itkPath}/*/*.py
    done
done
###### END SCRIPT


Take care,
Darren






On Mon, Oct 12, 2009 at 12:26 PM, Luis Ibanez <luis.ibanez at kitware.com>wrote:

> Hi Darren,
>
> This is really useful !
>
> Thank you for sharing it.
>
> Do you see any reason for not adding this to the CVS
> repository and distribute it along with ITK ?
>
> Please let us know,
>
>
>    Thanks
>
>
>          Luis
>
>
> ---------------------------------------
> On Mon, Oct 12, 2009 at 2:15 PM, Darren Weber
> <darren.weber.lists at gmail.com> wrote:
> >
> > This is a short bash script (grep does the work) to search for terms in
> the
> > InsightToolkit example files.  It's a convenience wrapper that stores the
> > path to the example files (.cxx in this case), the syntax of the grep
> call,
> > and allows multiple terms to be given at once.  Modify the example search
> > path for your purposes (it could be modified to search for the tcl or
> python
> > examples too).  Modify the grep call as you like.
> >
> > #### BEGIN SCRIPT
> > #!/bin/bash
> >
> > if [ $# -lt 1 ]; then
> >     echo "$0 'search term' ['search term' ...]"
> >     exit 1
> > fi
> >
> > # Search the CXX files
> > itkExamplePath="/opt/local/share/InsightToolkit/examples/*/*.cxx"
> > echo "Searching ITK .cxx files in: ${itkExamplePath}"
> >
> > for term in $@; do
> >     echo
> >     echo "Search term: ${term}"
> >     grep -l -E -e ${term} ${itkExamplePath}
> > done
> > #### END SCRIPT
> >
> > This is an example call on my platform:
> >
> > $ itkSearchExamples.bash 'TransformWriter' 'TransformReader'
> > Searching ITK .cxx files in:
> > /opt/local/share/InsightToolkit/examples/*/*.cxx
> >
> > Search term: TransformWriter
> > /opt/local/share/InsightToolkit/examples/IO/TransformReadWrite.cxx
> >
> > Search term: TransformReader
> > /opt/local/share/InsightToolkit/examples/IO/TransformReadWrite.cxx
> >
> /opt/local/share/InsightToolkit/examples/Registration/DeformableRegistration14.cxx
> >
> /opt/local/share/InsightToolkit/examples/Registration/DeformableRegistration8.cxx
> >
> > Take care,
> > Darren
> >
> >
> > _____________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the ITK FAQ at:
> > http://www.itk.org/Wiki/ITK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.itk.org/mailman/listinfo/insight-users
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20091012/c51dabf5/attachment.htm>


More information about the Insight-users mailing list