Преобразование CRLF в линейные каналы в Linux

Каков наилучший способ конвертировать CRLF в линейные каналы в файлах в Linux?

Я видел команды sed , но есть ли что-нибудь более простое?

Используйте эту команду:

fromdos yourtextfile 

Другой способ:

 todos yourtextfile 

Эти команды находятся в пакете tofrodos (в самых последних дистрибутивах), который также предоставляет две оболочки unix2dos и dos2unix, которые имитируют старые инструменты Unix с тем же именем.

Используйте dos2unix .

Dos2unix – DOS / MAC для конвертера формата текстового файла UNIX

 dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...] Options: [-hkqV] [--help] [--keepdate] [--quiet] [--version] 

Я предпочитаю perl :

 perl -lne 's/\r//g; print' winfile.txt > unixfile.txt 

Но это хорошо подходит для моих целей, и мне очень легко запомнить. Не все системы имеют команду dos2unix, но большинство из которых я работаю, имеют интерпретатор perl.

Другой – перекод , мощная замена dos2unix и iconv; Он доступен в пакете «recode» в репозиториях Debian:

 recode ibmpc..lat1 winfile.txt # dos2unix recode lat1..ibmpc unixfile.txt # unix2dos 

Для поклонников awk :

 awk '{ sub("\r$", ""); print }' winfile.txt > unixfile.txt 

… и sed :

 sed 's/\r$//' winfile.txt > unixfile.txt 

И теперь, только немного менее запутанный, чем удаление CR вручную в шестнадцатеричном редакторе, прямо из одного из наших друзей stackoverflow.com , можно использовать с интерпретатором beef (расположенным в вашем дружественном хранилище Debian)

Dos2unix в brainfuck !

 ,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++. 

Большое спасибо jk за то, что он потратил час своей жизни, чтобы написать это!

Я делаю это на Bash :

 cat cr_stuffed.file | tr -d \r > no_more_crs.file 

Я думаю, вы также можете использовать tr (хотя у меня нет смешных файлов формата, на которых можно попробовать):

 tr -d '\r' < file1 > file2 

Я нашел очень простой способ … Открыть файл с nano: ## nano file.txt

Нажмите Ctrl + O, чтобы сохранить, но перед нажатием Enter нажмите: Alt + D для переключения между линиями DOS и Unix / Linux или: Alt + M для переключения между линиями Mac и Unix / Linux, затем нажмите Enter для сохранения и Ctrl + X, чтобы выйти.

В vi или Vim :

 :%s/^V^M//g 

Я предпочитаю Vim и :set fileformat=unix . Хотя это и не самый быстрый, это дает мне предварительный просмотр. Это особенно полезно в случае файла со смешанными окончаниями.

Если вы хотите использовать GUI-метод, попробуйте текстовый редактор Kate (другие редакторы текста могут также справиться с этим). Откройте диалоговое окно find / Replace ( Ctrl + R ) и замените \r\n на \n . (NB: вам нужно выбрать «Регулярное выражение» из раскрывающегося списка и отменить выбор «Только выбор» из параметров.)

EDIT: Или, если вы просто хотите конвертировать в формат Unix, используйте пункт меню « Tools > « End of Line > « Unix .

Вставьте это в dos2unix.py скрипт Python.

 #!/usr/bin/env python """\ convert dos linefeeds (crlf) to unix (lf) usage: dos2unix.py <input> <output> """ import sys if len(sys.argv[1:]) != 2: sys.exit(__doc__) content = '' outsize = 0 with open(sys.argv[1], 'rb') as infile: content = infile.read() with open(sys.argv[2], 'wb') as output: for line in content.splitlines(): outsize += len(line) + 1 output.write(line + '\n') print("Done. Saved %s bytes." % (len(content)-outsize)) 

Должен работать на любой платформе с установленным Python. Всеобщее достояние.

  • Раздел JFFs для DD-WRT да или нет?
  • Есть ли способ выполнить что-то при закрытии крышки ноутбука?
  • Могу ли я получить доступ к архивам Microsoft Outlook PST с помощью любых других инструментов?
  • Отличается ли производительность 64-битного GNU / Linux?
  • Как получить список пользователей Linux из LDAP
  • Sudo без пароля при входе в систему с закрытыми ключами SSH
  • Можно ли загружать Windows 8.1 без собственного загрузчика?
  • Скопируйте файлы в Linux, избегайте копирования, если файлы существуют в месте назначения
  • Удалить или переименовать файл с \ r в качестве имени файла
  • Как автоматически установить USB-накопитель, на который все пользователи могут писать?
  • Установка Java на Ubuntu / Linux
  • Давайте будем гением компьютера.