blob: 9bf717b26081f7f82747ff6ce2a942c6c5b6d670 [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Concat</title>
<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
</head>
<body>
<h2><a name="Concat">Concat</a></h2>
<h3>Description</h3>
<p>
Concatenates a file, or a series of files, to a single file or
the console. The destination file will be created if it does
not exist.
</p>
<p>
<a href="../CoreTypes/path.html">Path</a>s and/or
<a href="../CoreTypes/fileset.html">FileSet</a>s and/or <a
href="../CoreTypes/filelist.html">FileList</a>s are used to
select which files are to be concatenated. There is no
singular 'file' attribute to specify a single file to cat.
</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td valign="top"><b>Attribute</b></td>
<td valign="top"><b>Description</b></td>
<td align="center" valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">destfile</td>
<td valign="top">
The destination file for the concatenated stream.
If not specified the console will be used instead.
</td>
<td valign="top" align="center">
No
</td>
</tr>
<tr>
<td valign="top">append</td>
<td valign="top">
Specifies whether or not the file specified by 'destfile'
should be appended. Defaults to &quot;no&quot;.
</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">force</td>
<td valign="top">
Specifies whether or not the file specified by 'destfile'
should be written to even if it is newer than all source files.
<em>since Ant 1.6</em>.
Defaults to &quot;yes&quot;.
</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">encoding</td>
<td valign="top">
Specifies the encoding for the input files. Please see <a
href="http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html">
http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html</a>
for a list of possible values. Defaults to the platform's
default character encoding.
</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">outputencoding</td>
<td valign="top">
The encoding to use when writing the output file
<em>since Ant 1.6</em>.
Defaults to the value of the encoding attribute
if given or the default JVM encoding otherwise.
</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">fixlastline</td>
<td valign="top">
Specifies whether or not to check if
each file concatenated is terminated by
a new line. If this attribute is &quot;yes&quot;
a new line will be appended to the stream if
the file did not end in a new line.
<em>since Ant 1.6</em>.
Defaults to &quot;no&quot;.
This attribute does not apply to embedded text.
</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">eol</td>
<td valign="top">
Specifies what the end of line character are
for use by the fixlastline attribute.
<em>since Ant 1.6</em>
Valid values for this property are:
<ul>
<li>cr: a single CR</li>
<li>lf: a single LF</li>
<li>crlf: the pair CRLF</li>
<li>mac: a single CR</li>
<li>unix: a single LF</li>
<li>dos: the pair CRLF</li>
</ul>
The default is platform dependent.
For Unix platforms, the default is &quot;lf&quot;.
For DOS based systems (including Windows),
the default is &quot;crlf&quot;.
For Mac OS, the default is &quot;cr&quot;.
</td>
<td valign="top" align="center">No</td>
</tr>
</table>
<h3>Parameters specified as nested elements</h3>
<h4>path</h4>
<p><em>since Ant 1.6</em>.</p>
<p>
This is a <a href="../CoreTypes/path.html">Path</a>. This is
used to select file files to be concatenated. Note that
a file can only appear once in a path. If this is
an issue consider using multiple paths.
</p>
<h4>fileset</h4>
<p>
<a href="../CoreTypes/fileset.html">FileSet</a>s are used to
select files to be concatenated. Note that the order in which
the files selected from a fileset are concatenated is
<i>not</i> guaranteed. If this is an issue, use multiple
filesets or consider using filelists.
</p>
<h4>filelist</h4>
<p>
<a href="../CoreTypes/filelist.html">FileList</a>s are used to
select files to be concatenated. The file ordering in the
<var>files</var> attribute will be the same order in which the
files are concatenated.
</p>
<h4>filterchain</h4>
<p><em>since Ant 1.6</em>.</p>
<p>The concat task supports nested
<a href="../CoreTypes/filterchain.html"> FilterChain</a>s.</p>
<h4>header,footer</h4>
<p><em>since Ant 1.6</em>.</p>
<p>Used to prepend or postpend text into the concatenated stream.</p>
<p>The text may be in-line or be in a file.</p>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td valign="top"><b>Attribute</b></td>
<td valign="top"><b>Description</b></td>
<td align="center" valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">filtering</td>
<td valign="top">
Whether to filter the text provided by this sub element,
default is "yes".
<td valign="top" align = "center">No</td>
</tr>
<tr>
<td valign="top">file</td>
<td valign="top">A file to place at the head or tail of the
concatenated text.
<td valign="top" align = "center">No</td>
</tr>
<tr>
<td valign="top">trim</td>
<td valign="top">Whether to trim the value, default is "no"</td>
<td valign="top" align = "center">No</td>
</tr>
<tr>
<td valign="top">trimleading</td>
<td valign="top">
Whether to trim leading white space on each line, default is "no"
</td>
<td valign="top" align = "center">No</td>
</tr>
</table>
<h3>Examples</h3>
<p><b>Concatenate a string to a file:</b></p>
<pre>
&lt;concat destfile=&quot;README&quot;&gt;Hello, World!&lt;/concat&gt;
</pre>
<p><b>Concatenate a series of files to the console:</b></p>
<pre>
&lt;concat&gt;
&lt;fileset dir=&quot;messages&quot; includes=&quot;*important*&quot;/&gt;
&lt;/concat&gt;
</pre>
<p><b>Concatenate a single file, appending if the destination file exists:</b></p>
<pre>
&lt;concat destfile=&quot;NOTES&quot; append=&quot;true&quot;&gt;
&lt;filelist dir=&quot;notes&quot; files=&quot;note.txt&quot;/&gt;
&lt;/concat&gt;
</pre>
<p><b>Concatenate a series of files, update the destination
file only if is older that all the source files:</b></p>
<pre>
&lt;concat destfile=&quot;${docbook.dir}/all-sections.xml&quot;
force=&quot;no&quot;&gt;
&lt;filelist dir=&quot;${docbook.dir}/sections&quot;
files=&quot;introduction.xml,overview.xml&quot;/&gt;
&lt;fileset dir=&quot;${docbook.dir}&quot;
includes=&quot;sections/*.xml&quot;
excludes=&quot;introduction.xml,overview.xml&quot;/&gt;
&lt;/concat&gt;
</pre>
<p><b>Concatenate a series of files, expanding ant properties</b></p>
<pre>
&lt;concat destfile="${build.dir}/subs"&gt;
&lt;path&gt;
&lt;fileset dir="${src.dir}" includes="*.xml"/&gt;
&lt;pathelement location="build.xml"/&gt;
&lt;/path&gt;
&lt;filterchain&gt;
&lt;expandproperties/&gt;
&lt;/filterchain&gt;
&lt;/concat&gt;
</pre>
<p><b>Filter the lines containing project from build.xml and output
them to report.output, prepending with a header</b></p>
<pre>
&lt;concat destfile="${build.dir}/report.output"&gt;
&lt;header filtering="no" trimleading="yes"&gt;
Lines that contain project
==========================
&lt;/header&gt;
&lt;path path="build.xml"/&gt;
&lt;filterchain&gt;
&lt;linecontains&gt;
&lt;contains value="project"/&gt;
&lt;/linecontains&gt;
&lt;/filterchain&gt;
&lt;/concat&gt;
</pre>
<hr>
<p align="center">
Copyright &copy; 2002-2003 Apache Software Foundation. All
Rights Reserved.
</p>
</body>
</html>