Окончания строк меняют редактор/приложение для всего проекта

У меня есть проект, состоящий из множества расширений. И эти расширения используют все 3 типа окончания строки. Но сервер может работать только с 2.

У меня есть редактор, который может изменять окончания строк в открытом файле, но мне нужно какое-то приложение, которое может выполнять пакетное преобразование, потому что это около 10 000 файлов.

Любые идеи?

Благодарю вас!


person tttpapi    schedule 08.11.2013    source источник


Ответы (1)


Это можно сделать, например, с помощью текстового редактора UltraEdit.

  1. Нажмите в меню Поиск на Заменить в файлах.
  2. Введите в качестве строки поиска \r?\n|\r
  3. Введите в качестве строки замены либо \r\n, чтобы во всех файлах преобразовать все окончания строк в DOS/Windows, либо только \n для окончания строк Unix.
  4. Выберите параметр Файлы в списке, если он еще не выбран.
  5. Введите для In files/types строку *.* или просто * или что-то другое, подходящее только для текстовых файлов и исключения двоичных файлов. Также можно указать несколько расширений файлов, разделив их точкой с запятой, например *.txt;*.htm?;*.php.
  6. Выберите с помощью кнопки ... родительский каталог, содержащий подкаталоги и файлы, которые необходимо изменить.
  7. Нажмите кнопку Дополнительно или кнопку со значком шестеренки, чтобы открыть дополнительные параметры.
  8. Установите флажок Поиск в подкаталогах.
  9. Установите флажок Регулярные выражения и выберите механизм регулярных выражений Perl.
  10. Если текстовые файлы имеют кодировку UTF-16 с прямым порядком байтов или UTF-16 с прямым порядком байтов, установите также флажок Использовать кодировку и выберите кодировку 1200 (UTF-16 LE) или < em>1201 (UTF-16 BE). Для всех других кодировок, таких как UTF-8 или ANSI, параметр кодировки не нужно использовать для этой замены в файлах.
  11. Запустите замену сейчас, нажав кнопку Заменить все.

Строка поиска регулярного выражения Perl \r?\n|\r соответствует либо паре возврата каретки и перевода строки (CRLF — DOS/Windows), либо просто переводу строки (LF — Unix), либо только возврату каретки (CR — Mac).

Все совпадающие файлы будут иметь новую дату модификации после выполнения этого регулярного выражения Perl «Заменить все», потому что выражение поиска находит все 3 типа окончания строки.

Но также возможно преобразовать только все файлы DOS/Mac в Unix, используя в качестве строки поиска \r\n|\r и \n в качестве строки замены. Файлы, содержащие только символы перевода строки и, следовательно, уже являющиеся файлами Unix, не изменяются с помощью этого поискового выражения.

Используйте (?<!\r)\n|\r(?!\n) в качестве строки поиска и \r\n в качестве строки замены, чтобы преобразовать только все файлы Unix/Mac в DOS/Windows. Файлы, уже содержащие только \r\n, не изменяются этим поисковым выражением.

person Mofi    schedule 19.06.2014