2014-03-31 49 views
1

我正在使用Groovy來定製Maven程序集插件,並使我的生活變得更加簡單。基本上我想模仿Maven Assembly插件的功能,一個是在轉換行尾時複製文件。Groovy:複製文件,同時轉換行結尾

在將行結束符轉換爲Unix樣式的同時將文件從A複製到B的最簡單方法是什麼?

回答

2

你可以這樣做(假設該文件不是太大,因爲它加載所有到內存)

void convertCRLF(File input, File output) { 
    output << input.text.replaceAll('\r\n', '\n') 
} 

convertCRLF(new File('/tmp/test.txt'), new File('/tmp/test.fix.txt')) 

或者,也許你可以嘗試AntBuilder與the FixCRLF task

這方面的一個例子是:

new AntBuilder().fixcrlf(srcDir:'/tmp/inputs', eol:'lf') 

這將所有文件轉換/tmp/inputs使用lf作爲行結束

+0

不喜歡這個解決方案,因爲它基於一些關於如何格式化初始文件的假設(例子中的windows-style)。我沒有這種信息。有沒有辦法將任何文本文件轉換爲Unix風格的文件? –

+0

@DenisKulagin如果它是基於unix的(只有'\ n'),它不會觸及它。我將看看AntBuildter任務的示例 –

+0

是的,它不會。但是如果我試圖用另一種方式轉換文件,它會產生\ r和\ r \ n的混淆。 –