1
我正在使用Groovy來定製Maven程序集插件,並使我的生活變得更加簡單。基本上我想模仿Maven Assembly插件的功能,一個是在轉換行尾時複製文件。Groovy:複製文件,同時轉換行結尾
在將行結束符轉換爲Unix樣式的同時將文件從A複製到B的最簡單方法是什麼?
我正在使用Groovy來定製Maven程序集插件,並使我的生活變得更加簡單。基本上我想模仿Maven Assembly插件的功能,一個是在轉換行尾時複製文件。Groovy:複製文件,同時轉換行結尾
在將行結束符轉換爲Unix樣式的同時將文件從A複製到B的最簡單方法是什麼?
你可以這樣做(假設該文件不是太大,因爲它加載所有到內存)
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
作爲行結束
不喜歡這個解決方案,因爲它基於一些關於如何格式化初始文件的假設(例子中的windows-style)。我沒有這種信息。有沒有辦法將任何文本文件轉換爲Unix風格的文件? –
@DenisKulagin如果它是基於unix的(只有'\ n'),它不會觸及它。我將看看AntBuildter任務的示例 –
是的,它不會。但是如果我試圖用另一種方式轉換文件,它會產生\ r和\ r \ n的混淆。 –