Yup, that is a better way of doing it. I should have tested the snippet
before positing. Thanks for sharing the correction.
-Prashant
On Thu, 2007-10-11 at 17:32 -0700, Saladin Sharif wrote:
> >oh you are looking to do something like :
> >cat log.txt | grep "a string" | wc -l
> >
> ><loadfile srcfile="${output}" property="contains.errors">
> > <filterchain>
> > <linecontains>
> > <contains value="${lookingFor}"/>
> > </linecontains>
> > </filterchain>
> ></loadfile>
> ><echo file="${basedir}/temp.txt" message="${contains.errors}"/>
>
> The problem with this code snippet is that if there are no occurances of
> ${lookingFor} in the file ${output}, then instead of an empty file being
> written out to ${basedir}/temp.txt, instead the literal string
> "${contains.errors}" gets written out to that file. That's because the
> property contains.errors has not been set.
>
> An even better approach would be to use the copy command, like so:
>
> <copy file="${output}" tofile="${basedir}/temp.txt">
> <filterchain>
> <linecontains>
> <contains value="differ}"/>
> </linecontains>
> </filterchain>
> </copy>
>
> This way if there are no occurances of ${lookingFor} in file ${output}, then
> an empty file gets written out to ${basedir}/temp.txt
> -Saladin
>
>
>
> **********************************************************
> * Saladin Sharif
> * e-mail: [EMAIL PROTECTED]
> * Visit homepage @ http://gaia.ecs.csus.edu/~sharifs
> **********************************************************
>
>
> ----- Original Message ----
> From: Prashant Reddy <[EMAIL PROTECTED]>
> To: Saladin Sharif <[EMAIL PROTECTED]>; Ant Users List <[email protected]>
> Sent: Tuesday, October 9, 2007 9:42:40 PM
> Subject: Re: How to get the count of the number of lines in a file using ANT
>
> On Tue, 2007-10-09 at 12:25 -0700, Saladin Sharif wrote:
> > But what I am really after is being able to set a flag if the file
> > contains one or more lines of text.
>
> oh you are looking to do something like :
> cat log.txt | grep "a string" | wc -l
>
> <loadfile srcfile="${output}" property="contains.errors">
> <filterchain>
> <linecontains>
> <contains value="${lookingFor}"/>
> </linecontains>
> </filterchain>
> </loadfile>
> <echo file="${basedir}/temp.txt" message="${contains.errors}"/>
>
> So now you have the lines from the ${output} which contain ${lookingFor}
> in a temp file temp.txt
>
> After this, you could use the example Matt gave to find out the number
> of lines in temp.txt
>
> Hope this helps.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]