Как использовать патчи, созданные в окнах (с CRLF) в Linux? Я

Стандартный патч Linux, трудно кодированный только для текстовых файлов Unix.

PS: Я делаю не хотят, преобразовывают ВСЕ в Unix и затем преобразовывают результат назад.

10
задан Braiam 27 December 2015 в 03:22
поделиться

3 ответа

Я столкнулся с этой проблемой прежде несколько раз. Это - то, что я открыл:

  • команда патча Linux не распознает patchfile, который имеет CRLF в патче 'метастроки'.
  • окончания строки фактического содержимого исправления должны соответствовать окончаниям строки исправляемых файлов.

, Таким образом, это - то, что я сделал:

  1. Использование dos2unix для преобразования файлов исправления в окончания строки LF только.
  2. Использование dos2unix для преобразования файлов, исправляемых в окончания строки LF только.
  3. Применяют патч.

можно использовать unix2dos для преобразования исправленных файлов назад в окончания строки CRLF, если вы хотите поддержать ту конвенцию.

14
ответ дан 3 December 2019 в 14:11
поделиться

PERL -I.BAK -PE'S / \ R / \ N / G 'INPUPFILE для преобразования любой линии, заканчивающейся на стандарт.

0
ответ дан 3 December 2019 в 14:11
поделиться

Комбинировано:

dos2unix patchfile.diff
dos2unix $(grep 'Index:' patchfile.diff | awk '{print $2}')
patch --verbose -p0 -i patchfile.diff
unix2dos $(grep 'Index:' patchfile.diff | awk '{print $2}')

Последняя строка зависит от того, хотите ли вы сохранить CRLF или нет.

М.

PS. Это должен был быть ответ на сообщение cscrimge. DS.

8
ответ дан 3 December 2019 в 14:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: