Replace is a directory based task for replacing the occurrence of a given string with another string in selected file.

Replaceタスクはディレクトリベースのタスクで、 選択したファイル中のある文字列を与えられた別の文字列に置換します。

If you want to replace a text that crosses line boundaries, you must use a nested <replacetoken> element.

行をまたがるテキストを置換したい場合は、 ネストした <replacetoken> 要素を使ってください。



Attribute Description Required
file file for which the token should be replaced. Exactly one of the two.
dir The base directory to use when replacing a token in multiple files.
encoding The encoding of the files upon which replace operates. No - defaults to default JVM encoding
token the token which must be replaced. Yes, unless a nested replacetoken element or the replacefilterfile attribute is used.
value the new value for the token. When omitted, an empty string ("") is used. No
summary Indicates whether a summary of the replace operation should be produced, detailing how many token occurrences and files were processed No, by default no summary is produced
propertyFile valid property file from which properties specified using nested <replacefilter> elements are drawn. Yes only if property attribute of <replacefilter> is used.
replacefilterfile valid property file. Each property will be treated as a replacefilter where token is the name of the property and value is the properties value. No.
includes comma- or space-separated list of patterns of files that must be included. All files are included when omitted. No
includesfile the name of a file. Each line of this file is taken to be an include pattern No
excludes comma- or space-separated list of patterns of files that must be excluded. No files (except default excludes) are excluded when omitted. No
excludesfile the name of a file. Each line of this file is taken to be an exclude pattern No
defaultexcludes indicates whether default excludes should be used or not ("yes"/"no"). Default excludes are used when omitted. No
属性 説明 必須
file トークンを置換する対象ファイル 必ず 2 つのうちの 1つ
dir 複数ファイルの文字を置換するときに使われるベースディレクトリ
encoding 置換操作を行うファイルのエンコーディング No - デフォルトはデフォルトJVMのエンコーディング
token 置換されるトークン ネストした replacetoken 要素か replacefilterfile 属性を 使用しない限りYes
value トークンの新しい値。省略された場合は、空文字列 ("") が使用されます。 No
summary 置換操作が実行されたかのサマリー。 処理された文字列とファイルの数を表示します。 No, デフォルトではサマリーは表示されません
propertyFile 有効なプロパティーファイル。ネストした <replacefilter> 要素で使用されます。 <replacefilter>property 属性としてのみ Yes
replacefilterfile 有効なプロパティーファイル。 tokenと一致するプロパティーの 各プロパティーが replacefilter として扱われ、 valueはプロパティーの値となります。 No.
includes 包含しなければならないファイルのパターンのカンマかスペースで区切られたリスト。 省略した時には、すべてのファイルが含まれます。 No
includesfile ファイル名。 このファイルの各行は、 包含パターンとして解釈されます。 No
excludes 除外するファイルのパターンのコンマかスペース区切られたリスト。 省略時は(デフォルト除外集合を除いて)除外されるファイルはありません。 No
excludesfile ファイル名。 このファイルの各行は除外パターンとして解釈されます。 No
defaultexcludes デフォルト除外集合を使用するかどうか("yes"/"no") を指定します。省略したときにはデフォルト除外集合を使用します。 No


  <replace file="${src}/index.html" token="@@@" value="wombat"/>

replaces occurrences of the string "@@@" with the string "wombat", in the file ${src}/index.html.


Parameters specified as nested elements


This task forms an implicit FileSet and supports all attributes of <fileset> as well as the nested <include>, <exclude> and <patternset> elements.

このタスクは暗黙のFileSetを持っていて、 ネストした <include><exclude><patternset> 要素と同様に、 <fileset>属性のすべてをサポートします。

If either the text you want to replace or the replacement text cross line boundaries, you can use nested elements to specify them.

置換したい、または置換されるテキストのどちらかが行をまたがっている場合には、 それを指定するためにネストした要素を使用できます。


<replace dir="${src}" value="wombat">
  <include name="**/*.html"/>
  <replacetoken><![CDATA[multi line

replaces occurrences of the string "multi line\ntoken" with the string "wombat", in all HTML files in the directory ${src}.Where \n is the platform specific line separator.

${src}ディレクトリ以下のすべてのHTMLファイル中の 文字列"multi line\ntoken"を、文字列"wombat"で置換します。 \nは、プラットホームに依存する改行を表します。

<replace file="${src}/index.html">
  <replacetoken><![CDATA[two line
  <replacevalue><![CDATA[two line


In addition to allowing for multiple replacements, optional nested <replacefilter> elements allow replacement values to be extracted from a property file. The name of this file is specified using the <replace> attribute propertyFile.

任意のネストした<replacefilter>要素は、 複数の置換が可能な上に、 プロパティファイルから読み込んだ値で置換できます。 このファイルの名前は<replace>の属性propertyFile を使って指定します。

Attribute Description Required
token The string to search for. Yes
value The replacement string. Either may be specified, but not both. Both can be omitted, if desired.
property Name of the property whose value is to serve as the replacement value.
属性 説明 必須
token 検索する文字列 Yes
value 置換する文字列 どちらか一方。両方は不可。望むなら両方省略は可能。
property プロパティーの名前。プロパティーの値で置換されます。

If neither value nor property is used, the value provided using the <replace> attribute value and/or the <replacevalue> element is used. If no value was specified using either of these options, the token is replaced with an empty string.

もし valueproperty も使用されなければ、 <replace> 属性のvalue および/あるいは <replacevalue> 要素が 置換する値として使われます。 もし、これらのオプションのどれも使われていなければ、token は空文字列に置き換えられます。


    propertyFile="source/" >
    token="@token1@" />

In file, replace all instances of "@token1@" with "defaultvalue", all instances of "@token2@" with "value2", and all instances of "@token3@" with the value of the property "property.key", as it appears in property file src/

configure.shファイル中のすべての"@token1@" インスタンスを "defaultvalue"に置換し、 すべての "@token2@" インスタンスを "value2"に置換し、 すべての "@token3@" インスタンスを プロパティーファイルsrc/name.propertiesの プロパティー"property.key"で置換します。

Note: It is possible to use either the token/<replacetoken> and value/<replacevalue> attributes/elements, the nested replacefilter elements, or both in the same operation.

Note: token/<replacetoken>value/<replacevalue> 属性/要素 の両方が、 ネストしたreplacefilter要素や同じ操作の中で 使用可能です。

Copyright © 2000-2002 Apache Software Foundation. All rights Reserved.

[訳注:これは宮本信二,風間一洋が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]