Конвертировать несколько файлов из всех возможных EOL в CRLF - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть файлы со всеми возможными EOL. Я хочу нормализовать их в один go вместо того, чтобы делать их один за другим, поскольку мы говорим несколько тысяч. Я знаю, как сделать их вручную, поэтому, пожалуйста, не объясняйте это.

Я думаю, что все возможные, от самых распространенных до наименее распространенных: CRLF, LF, CR-CRLF, CRCR-CRLF, CR LFLF, CRCR, CRLF-CRLF и CRCRCR-CRLF (да, есть один файл).

Все файлы имеют одинаковое EOL, в одном файле нет смешанных. После исправления могут остаться некоторые нечетные CR или LF, которые можно оставить в покое.

Я хочу, чтобы все файлы имели только CRLF. Пустые строки должны оставаться нетронутыми.

Сначала я думаю, что мне нужно хорошее определение того, что EOL есть в каждом файле. Он может проверить, что он повторяется по крайней мере 3 раза, но у некоторых есть только одна строка.

Здесь я сделал несколько скретч-файлов, все должны выглядеть как CRLF, когда все готово (внутри есть только TXT-файлы): https://www71.zippyshare.com/v/BNpRAijy/file.html

Я гуглил целый день и не нашел хорошего решения.

Примеры

1. просто CRLF EOL , результат, который я хочу от всех:

line1 CRLF

line2 CRLF

CRLF

line3 CRLF

line4 CRLF

CRLF

CRLF

line5 CRLF

CRLF

CRLF

CRLF

line6 CRLF

CRLF

2. CRCRLF: Вручную я заменил бы CRCRLF на CRLF, \ r \ r \ n на \ r \ n и повторил бы снова для файлов с CRCRCRLF и снова для этого одинокого CRCRCRCRLF. Но проблема не во всех файлах, есть только такая возможность, есть еще 5 для рассмотрения, которые я перечислил выше. Хотя просто LF и только CR не так проблематичны c здесь, поскольку Windows Notepad теперь поддерживает Unix и MA C EOL, но было бы неплохо включить их.

Так что главная проблема остается LFLF, а также есть несколько CRCR и CRCR-CRLF для рассмотрения. Лучше всего включить все возможные варианты.

line1 CR

CRLF

line2 CR

CRLF

CR

CRLF

line3 CR

CRLF

line4 CR

CRLF

CR

CRLF

CR

CRLF

line5 CR

CRLF

CR

CRLF

CR

CRLF

CR

CRLF

line6 CR

CRLF

CR

CRLF

1 Ответ

0 голосов
/ 20 апреля 2020

С помощью Блокнота ++ вы можете:

  • Ctrl + Shift + F
  • Найти что : \R+
  • Заменить на: \r\n

Где \R+ обозначает 1 или более любой разрыв строки.

Снимок экрана:

enter image description here

...