What about creating a <loadfile> task with a few <filtersets>? Loadfile places the content of a file into a property. The <filterchain> acts on the contents of that file. I load the file input.sql into the property ${sql.line}. But, I add three filter chains. The first filters out all lines except the one I am looking for. The second transforms that line by removing the beginning and trailing ends of the line, leaving only the middle you want. I also had to add one more to strip out the linefeed on the end of the line.
<project name="test" default="test" basedir="."> <target name="test"> <loadfile srcfile="input.sql" property="sql.line"> <filterchain> <linecontainsregexp> <regexp pattern="where keyp_clientid in .*--Second Wave"/> </linecontainsregexp> <tokenfilter> <filetokenizer/> <replaceregex pattern="^where keyp_clientid in .*(\(.*\)).*$" replace="\1"/> </tokenfilter> <striplinebreaks/> </filterchain> </loadfile> <echo message="Line is "${sql.line}""/> </target> </project> What's nice about this is that it depends upon no operating specific <exec> tasks, or outside ant tasks. On Jan 9, 2008 5:00 PM, Chun Ji <[EMAIL PROTECTED]> wrote: > > Hi all, > > I have a file: "input.sql" which contans a line as: > " > ... > where keyp_clientid in (7,32,113,33) --Second Wave > .. > ", > > And I need this " (7, 32, 113, 33)" as an input string to excute a java > class, and that is command line I use on my linux box, and it works, > " > java Test `grep "^where keyp_clientid in" input.sql | awk '{print $4}'` > > ". > > > > Now the question is how can I use this command line in an Ant Makefile to get > the same results? Here is what I did in my "build.xml" and it fails: > " > ... > <target name="migration"> > <exec executable="java" dir="."> > <arg line="..."/> > <arg line="Test `grep "^where keyp_clientid in" input.sql | awk > '{print $4}'` "/> > </exec> > <xslt .../> > </target> > ... > " > The error msg is: Element type "arg" must be followed by either attribute > specifications, ">" or "/>" > > > > So what should I do to solve this issue ? Any comments is welcome! > > > > thanks a lot, > > > > Chun > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- -- David Weintraub [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]