<br>Hi Luis,<br><br>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).<br><br>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).<br>
<br>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&#39;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:<br>
<span style="font-family: courier new,monospace;">less -p ${searchTerm} ${fileArray}[@]</span><br style="font-family: courier new,monospace;">Then less would provide the means to page through the files.<br><br>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 &#39;itkSearchFiles.bash&#39; ?<br>
<br>###### BEGIN SCRIPT<br>#!/bin/bash<br><br>if [ $# -lt 1 ]; then<br>    echo &quot;$0 &#39;search term&#39; [&#39;search term&#39; ...]&quot;<br>    exit 1<br>fi<br><br>itkExamplePath=&quot;/opt/local/share/InsightToolkit/examples&quot;<br>
itkTestingPath=&quot;/opt/local/share/InsightToolkit/testing/Code&quot;<br><br>for term in $@; do<br>    echo<br>    echo &quot;Search term: ${term}&quot;<br>    for itkPath in &quot;${itkExamplePath}&quot; &quot;${itkTestingPath}&quot; ; do<br>
        if [ ! -d ${itkPath} ]; then<br>            echo &quot;Path not found: ${itkPath}&quot;<br>        fi<br>        echo &quot;Searching ITK files in: ${itkPath}&quot;<br>        grep -l -E -e ${term} ${itkPath}/*/*.cxx<br>
        grep -l -E -e ${term} ${itkPath}/*/*.tcl<br>        grep -l -E -e ${term} ${itkPath}/*/*.py<br>    done<br>done<br>###### END SCRIPT<br>
<br><br>Take care,<br>Darren<br><br><br><br><br><br><br><div class="gmail_quote">On Mon, Oct 12, 2009 at 12:26 PM, Luis Ibanez <span dir="ltr">&lt;<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Darren,<br>
<br>
This is really useful !<br>
<br>
Thank you for sharing it.<br>
<br>
Do you see any reason for not adding this to the CVS<br>
repository and distribute it along with ITK ?<br>
<br>
Please let us know,<br>
<br>
<br>
    Thanks<br>
<br>
<br>
          Luis<br>
<br>
<br>
---------------------------------------<br>
<div><div></div><div class="h5">On Mon, Oct 12, 2009 at 2:15 PM, Darren Weber<br>
&lt;<a href="mailto:darren.weber.lists@gmail.com">darren.weber.lists@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; This is a short bash script (grep does the work) to search for terms in the<br>
&gt; InsightToolkit example files.  It&#39;s a convenience wrapper that stores the<br>
&gt; path to the example files (.cxx in this case), the syntax of the grep call,<br>
&gt; and allows multiple terms to be given at once.  Modify the example search<br>
&gt; path for your purposes (it could be modified to search for the tcl or python<br>
&gt; examples too).  Modify the grep call as you like.<br>
&gt;<br>
&gt; #### BEGIN SCRIPT<br>
&gt; #!/bin/bash<br>
&gt;<br>
&gt; if [ $# -lt 1 ]; then<br>
&gt;     echo &quot;$0 &#39;search term&#39; [&#39;search term&#39; ...]&quot;<br>
&gt;     exit 1<br>
&gt; fi<br>
&gt;<br>
&gt; # Search the CXX files<br>
&gt; itkExamplePath=&quot;/opt/local/share/InsightToolkit/examples/*/*.cxx&quot;<br>
&gt; echo &quot;Searching ITK .cxx files in: ${itkExamplePath}&quot;<br>
&gt;<br>
&gt; for term in $@; do<br>
&gt;     echo<br>
&gt;     echo &quot;Search term: ${term}&quot;<br>
&gt;     grep -l -E -e ${term} ${itkExamplePath}<br>
&gt; done<br>
&gt; #### END SCRIPT<br>
&gt;<br>
&gt; This is an example call on my platform:<br>
&gt;<br>
&gt; $ itkSearchExamples.bash &#39;TransformWriter&#39; &#39;TransformReader&#39;<br>
&gt; Searching ITK .cxx files in:<br>
&gt; /opt/local/share/InsightToolkit/examples/*/*.cxx<br>
&gt;<br>
&gt; Search term: TransformWriter<br>
&gt; /opt/local/share/InsightToolkit/examples/IO/TransformReadWrite.cxx<br>
&gt;<br>
&gt; Search term: TransformReader<br>
&gt; /opt/local/share/InsightToolkit/examples/IO/TransformReadWrite.cxx<br>
&gt; /opt/local/share/InsightToolkit/examples/Registration/DeformableRegistration14.cxx<br>
&gt; /opt/local/share/InsightToolkit/examples/Registration/DeformableRegistration8.cxx<br>
&gt;<br>
&gt; Take care,<br>
&gt; Darren<br>
&gt;<br>
&gt;<br>
</div></div>&gt; _____________________________________<br>
&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at<br>
&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;<br>
&gt;<br>
</blockquote></div><br>