Groovy:在转换行尾时复制文件

Groovy:在转换行尾时复制文件,groovy,io,conventions,line-endings,Groovy,Io,Conventions,Line Endings,我正在使用Groovy定制Maven汇编插件,让我的生活变得更轻松。基本上,我想模仿Maven汇编插件的功能,一个是在转换行尾时复制文件 在将行尾转换为Unix样式时,将文件从A复制到B的最简单方法是什么?您可以这样做(假设文件不太大,因为它会将所有文件加载到内存中) 它会将/tmp/inputs中的所有文件转换为使用lf作为行尾不喜欢此解决方案,因为它基于初始文件格式的一些假设(示例中为windows样式)。我没有这种信息。有没有办法将任何文本文件转换为Unix样式的文件?@DenisKula

我正在使用Groovy定制Maven汇编插件,让我的生活变得更轻松。基本上,我想模仿Maven汇编插件的功能,一个是在转换行尾时复制文件

在将行尾转换为Unix样式时,将文件从A复制到B的最简单方法是什么?

您可以这样做(假设文件不太大,因为它会将所有文件加载到内存中)


它会将
/tmp/inputs
中的所有文件转换为使用
lf
作为行尾

不喜欢此解决方案,因为它基于初始文件格式的一些假设(示例中为windows样式)。我没有这种信息。有没有办法将任何文本文件转换为Unix样式的文件?@DenisKulagin如果它是基于Unix的(仅使用
\n
),它将不会触及它。我将研究Antbuilder任务的一个示例是的,它不会。但是,如果我尝试以另一种方式转换文件,它将生成\r\n和\r\n的混合。DenisKulagin添加了一个通过
AntBuilder
使用
fixcrlf
任务的示例
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' ) )
new AntBuilder().fixcrlf( srcDir:'/tmp/inputs', eol:'lf' )