Groovy: копирование файла при преобразовании концов строк

Я использую Groovy для настройки плагина сборки Maven и немного облегчаю себе жизнь. По сути, я хотел бы имитировать функциональность плагина Maven Assembly, и один из них — копирование файлов при преобразовании концов строк.

Каков самый простой способ скопировать файл из A в B при преобразовании концов строк в стиль Unix?


person Denis Kulagin    schedule 31.03.2014    source источник


Ответы (1)


Вы можете сделать это (при условии, что файл не слишком велик, так как он загружает все это в память)

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 с задачей FixCRLF.

Примером этого может быть:

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

Который преобразует все файлы в /tmp/inputs для использования lf в качестве конца строки

person tim_yates    schedule 31.03.2014
comment
Не нравится это решение, потому что оно основано на некотором предположении о том, как отформатирован исходный файл (в примере в стиле Windows). У меня нет такой информации. Есть ли способ преобразовать ЛЮБОЙ текстовый файл в файл в стиле Unix? - person Denis Kulagin; 31.03.2014
comment
@DenisKulagin Если он основан на Unix (только с \n), он его не коснется. Я рассмотрю пример задачи AntBuildter - person tim_yates; 31.03.2014
comment
Да, не будет. Но если я попытаюсь преобразовать файл другим способом, он создаст какую-то неприятную смесь \r и \r\n. - person Denis Kulagin; 31.03.2014
comment
@DenisKulagin Добавил пример использования задачи fixcrlf через AntBuilder - person tim_yates; 31.03.2014