Как заменить crlf на lf в одном файле

Как преобразовать один файл с возвратом строки crlf, чтобы вернуть строку lf?

git уже корректно обрабатывает crlf для преобразования lf автоматически для файлов, когда я нажимаю их в удаленный репозиторий, но в этом конкретном случае я не делаю push в репозиторий. Скорее, я загружаю файл, используя поле файла в форме HTML, на веб-сайт, для которого требуется, чтобы файл возвращал строку lf. Поэтому мне нужно иметь возможность конвертировать этот файл по отдельности.

Мои доступные потенциально полезные инструменты, доступные на этом компьютере, будут git и Dreamweaver CC 2014.1. (Я предполагаю, что Word, Wordpad и Notepad не являются жизнеспособными вариантами, но я открыт для исправления.)

Я нахожусь в Windows 7 и используя команды git.

Ответ 1

Установка git на windows обычно включает в dos2unix инструмент dos2unix.

dos2unix <file>

Но в вашем случае вы должны использовать .gitattributes чтобы предотвратить преобразование файла в Windows.

Файл .gitattributes может выглядеть так

*.vcproj    eol=crlf
*.sh        eol=lf

Из документации .gitattributes

Установить строковое значение "lf"

Этот параметр заставляет Git нормализовать окончания строк в LF при регистрации и предотвращает преобразование в CRLF при извлечении файла.

Просто зафиксируйте файл .gitattributes и ваш файл будет .gitattributes на каждой системе с окончанием строки LF.

Ответ 2

Для преобразования из текста в стиле Windows в текст в стиле Unix:

perl -pe 's/\r$//g' < windows_file.txt > unix_file.txt

Чтобы преобразовать текст в стиле Unix в текст в стиле Windows:

perl -pe 's/(?<!\r)\n/\r\n/g' < unix_file.txt > windows_file.txt

Эта команда "Unix-to-Windows" является "безопасной", и я имею в виду, что она не добавит дополнительные каретки-возвращения к файлу, который уже находится в формате Windows. Я надеюсь, что кто-то воспользуется этим.

Ответ 3

Word и wordpad следует избегать! НИКОГДА не пытайтесь изменить код с ним, они добавят дополнительный код для файла.

Чтобы преобразовать конец строки, вы просто используете Notepad ++ или Scite, вы выбираете конец файла: Windows, Mac, Linux.

Вот пример использования Scite:

scite

Ответ 4

Для отдельного файла вы можете использовать утилиту замены Notepad++:

  • Перейти к поиску → Заменить (или Ctrl-H)
  • В диалоговом окне выберите "Расширенный" режим поиска.
  • Установите "Найти что" в: \r\n
  • Установите "Заменить на" на: \n
  • Нажмите "Заменить все"

Ответ 5

В Notepad++ на нижней панели справа щелкните правой кнопкой мыши область Windows (CR LF) и выберите UNIX (LF), это должно заменить все CRLF на LF.

enter image description here