S-JIS[2008-12-24] 変更履歴

Ant:FixCRLF

改行コードやタブ(スペース・ブランク)を変換するコアタスク。
(org.apache.tools.ant.taskdefs.FixCRLF extends MatchingTask
Ant1.7以降ではファイルの文字コード(エンコード)も変換できる。

最新fixcrlf


属性

属性 説明 バージョン
srcdir 変換するディレクトリー。  
file 変換するファイル。1ファイルだけ変換したい場合に使用できる。(srcdirかfileが必須) Ant1.7以降
destdir 変換したファイルを別の場所に書き出したい場合に指定する。
destdirの指定が無い場合、変換元ファイルに上書きされる。
 
eol どういう改行コードに変換するかの指定。(eol=end of line)
説明
cr mac CR(0d)に変換する。
lf unix LF(0a)に変換する。
crlf dos CRLF(0d0a)に変換する。
 
eof DOSのテキストファイルのファイル終端文字(EOF(1a))を変換するかどうかの指定。(eof=end of file)
説明 備考
add EOF(1a)を追加する。  
asis そのままにする。 Windowsで動くAntでのデフォルト
remove EOF(1a)を削除する。 UNIXで動くAntでのデフォルト
 
fixlast trueの場合、ファイルの最終行に改行コードが無いと改行コードを付加する。
デフォルトはtrue。
Ant1.6.1以降
tab
tablength
タブ文字(TAB(09))とスペース(SPC(20))を変換するかどうかの指定。
tablengthは2〜80の範囲で指定する。デフォルトは8。
tab tablengthの例 説明
add 8 スペース8個をタブ1個に置換する。
asis 無関係 スペースとタブを置換しない。
remove 4 タブ1個をスペース4個に置換する。
 
encoding 入力ファイルの文字コード。例:encoding="UTF-8"
デフォルトはJavaVMのデフォルトの文字コード(システムプロパティーfile.encoding)。
 
outputencoding 出力ファイルの文字コード。
デフォルトはencodingと同じ。
Ant1.7以降
preservelastmodified trueの場合、変換先ファイルの日付を更新しない。
デフォルトはfalse。
Ant1.6.3以降

ボディー部に入れられるタグ

タグ(使用例) 説明
<include name="**/*.sh"/> 変換するファイルを指定する。
<exclude name="**/*.txt"/> 変換しないファイルを指定する。

UNIXの改行コードへ変換する例

<fixcrlf srcdir="${dir}" eol="lf" eof="remove" />
<fixcrlf file="${file}" eol="lf" eof="remove" />
<fixcrlf srcdir="${srcdir}" destdir="${todir}" eol="lf" eof="remove" />
<fixcrlf srcdir="${srcdir}" destdir="${todir}" eol="lf" eof="remove">
	<include name="**/*.sh" />
	<include name="**/*.conf" />
</fixcrlf>

UTF-8のファイルの改行コードを変換する例

<fixcrlf srcdir="${dir}" eol="lf" eof="remove" encoding="UTF-8" />

※Windows上のAntでUTF-8のファイルをencoding指定なしで読み込むと、ばっちり文字化けする。
(encoding指定をしないと、Windows上のJavaVMのテキストファイル読み書きのデフォルトはシフトJISになる為、UTF-8のファイルをシフトJISとして読み込んで変になる)

シフトJISからEUCへ変換する例

<fixcrlf srcdir="${srcdir}" destdir="${todir}" encoding="MS932" outputencoding="EUC_JP">
	<include name="**/*.txt" />
</fixcrlf>

Ant目次へ戻る / 技術メモへ戻る / native2asciiへ行く
メールの送信先:ひしだま