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