Какой лучший способ конвертировать CRLF в перевод строки в файлах в Linux?
Я видел команды sed , но есть ли что-нибудь попроще?
linux
carriage-return
JoelFan
источник
источник
Ответы:
Используйте эту команду:
Наоборот:
Эти команды находятся в пакете tofrodos (в большинстве последних дистрибутивов), который также предоставляет две оболочки - unix2dos и dos2unix, которые имитируют старые инструменты unix с тем же именем.
источник
find . -name '*.txt' -print0 | xargs -null fromdos
Использование
dos2unix
.источник
Я предпочитаю Perl :
Но это хорошо подходит для моих целей, и мне очень легко запомнить. Не во всех системах есть команда dos2unix, но большинство, над которыми я работаю, имеют интерпретатор perl.
Другой - перекодирование , мощная замена для dos2unix и iconv; он доступен в пакете «recode» в репозиториях Debian:
Для фанатов awk :
... и sed :
И теперь, только чуть-чуть менее запутанно, чем удаление CR вручную в шестнадцатеричном редакторе, прямо от одного из наших друзей stackoverflow.com , который можно использовать с интерпретатором beef (находится в вашем дружественном соседнем репозитории Debian),
dos2unix в Brainfuck !
Большое спасибо JK за потраченный час его жизни, чтобы написать это!
источник
Я делаю это на Bash :
источник
Я думаю, что вы также можете использовать
tr
(хотя у меня нет забавных файлов формата, чтобы попробовать):источник
В vi или Vim :
источник
Я нашел очень простой способ ... Открыть файл с помощью nano: ## nano file.txt
нажмите Ctrl + O для сохранения, но перед нажатием Enter нажмите: Alt + D для переключения между окончаниями строк DOS и Unix / Linux или: Alt + M для переключения между окончаниями Mac и Unix / Linux, затем нажмите Enter для сохранения и Ctrl + X, чтобы выйти.
источник
Alt+d
. Иногда alt перехватывается терминальной программой, поэтому вы можете использоватьesc+d
вместо этого.Я предпочитаю Vim и
:set fileformat=unix
. Хотя и не самый быстрый, он дает мне предварительный просмотр. Это особенно полезно в случае файла со смешанными окончаниями.источник
Если вам нужен метод с графическим интерфейсом, попробуйте текстовый редактор Kate (другие продвинутые текстовые редакторы тоже могут с этим справиться). Откройте диалог поиска / замены ( Ctrl+ R) и замените
\r\n
на\n
. (Примечание: вам нужно выбрать «Регулярное выражение» из выпадающего списка и отменить выбор «Только выбор» из опций.)EDIT: Или, если вы просто хотите конвертировать в формат Unix, то используйте опцию меню
Tools
>End of Line
>Unix
.источник
\r\n
в\n
то с помощью поиска / замены проще , чем припоминания , которая использует ОС , какая линия заканчивающегося. ;)Вставьте это в скрипт Python dos2unix.py .
Должен работать на любой платформе с установленным Python. Всеобщее достояние.
источник
CR LF
сLF
использованием AWK :Пример использования:
Объяснение:
-v RS='\r?\n'
устанавливает переменную RS ( input r ecord s eparator) в\r?\n
значение, означающее, что input читается строка за строкой, разделенная LF (\n
), которой может (?
) предшествовать CR (\r
).1
скрипт, исполняемый awk Сценарий состоит изcondition { action }
. В этом случае1
это условие, которое оценивается как истинное. Действие опущено, поэтому выполняется действие по умолчанию, что означает печать текущей строки (которая также может быть записана как{print $0}
или просто{print}
).LF
вCR LF
: Вы можете установить переменнуюORS
( о utput г ecord s eparator) , чтобы изменить концы линии выхода. Пример:источник
Я использовал этот скрипт для файлов, необходимых для экстренной передачи файлов из системы Windows в систему Unix.
find . -type f
Находит все файлы, рекурсивно в каталоге, из которого вы запускаете команду
xargs file
Передайте его в файловую программу, чтобы получить анализ файла.
grep CRLF
Мы хотим только вывод файла, который показывает CRLF.
cut -d: -f1
Получите выход до цвета. откажитесь от всего остального. У нас должно быть только имя файла
xargs dos2unix
Передайте имя файла программе dos2unix, используя xargs .
источник