Java Mailing List Archive

http://www.ant-tasks.com/

Home » Ant Users List »

Re: Replace string in file

David Weintraub

2008-05-15

Replies: Find Java Web Hosting

Author LoginPost Reply
On Thu, May 15, 2008 at 9:17 AM, Guy Catz <Guy.catz@(protected):
> Thanks for the answer.
>
> I need to replace @token@(protected)>.
> But the ANT engine tells me that I can't use '<' or '>'.

You have to escape those with "&lt;" and "&gt;" for "<" and ">"
respectively. The build.xml file is a XML file, and in XML the greater
and less than signs have special meanings.

Another possibility is to use a *.properties file for the replacement
string. Imagine having a file called "replace.properties" with this
line.

token=<aa><bb></bb></aa>

This is legal in properties files and should work when reading it with
ant. You can use a <filtersfile> as my example above shows. In the
above example, I have a file called "${deploy.properties.file}" that
contains the tokens I want to filter.

>
> Please advice.
>
> Thanks.
>
> -----Original Message-----
> From: David Weintraub [mailto:qazwart@(protected)]
> Sent: Tuesday, May 13, 2008 8:27 PM
> To: Ant Users List
> Subject: Re: Replace string in file
>
> What type of replacement? You can do a filter on strings like @VERSION@,
> @DATE@(protected)
> copy. For example, I have some configuration files.
> They're called *.properties.template, and I replace the @xxx@(protected)
> with values from a deploy.properties file and remove the *.template
> suffix. The filterset replaces the @xxx@(protected)
> while the mapper renames the file by removing the *.template
> suffix:
>
>     <!-- Copy the configuration files that don't contain tokens -->
>     <copy todir="${local.jboss.home}/server/${jboss.instance}"
>        verbose="${copy.verbose.flag}">
>        <fileset dir="${jboss.install.home}/jbdev1">
>           <exclude name="**/*.template"/>
>        </fileset>
>     </copy>
>
>     <!-- Copy the configurable files and replace any tokens -->
>     <copy todir="${local.jboss.home}/server/${jboss.instance}"
>        overwrite="true"
>        verbose="${copy.verbose.flag}">
>        <fileset dir="${jboss.install.home}/jbdev1">
>           <include name="**/*.template"/>
>        </fileset>
>        <mapper type="glob"
>           from="*.template" to="*"/>
>        <filterset begintoken="@(protected)="@">
>           <filter token="path_to_server_dir"
>
> value="${local.jboss.home}/server/${jboss.instance}"/>
>           <filtersfile file="${deploy.properties.file}"/>
>        </filterset>
>     </copy>
>
> Is this what you're looking for?
>
> On Mon, May 12, 2008 at 9:18 AM, Guy Catz <Guy.catz@(protected):
>> hey guys,
>>
>> Is it possible to replace a string in an existing file?
>>
>> Thanks,
>>   Guy.
>>
>
>
>
> --
> --
> David Weintraub
> qazwart@(protected)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> commands, e-mail: user-help@(protected)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>



--
--
David Weintraub
qazwart@(protected)

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)

©2008 ant-tasks.com - Jax Systems, LLC, U.S.A.