Удалите специальный шаблон ^ M из скрипта, который добавлен после FTP из окон в Unix

Я отправляю файл Windows, используя FTP, в систему Unix и добавляю ^M везде, где предполагалась новая строка, и я просто хочу их удалить.

Один из методов, который я могу выбрать, – запустить команду dos2unix .

  • Как печатать новые строки в конце функций?
  • Sed? Удаление всех форматирования, т. Е. Разрывов строк и пробелов, из текстового файла отчета при маскировке определенных частей
  • Присоедините два файла с различным количеством столбцов и строк
  • Элегантный способ предотвратить замену команд от удаления конечной строки новой строки
  • Установка спящего раздела Windows NT NTFS на Linux Mint
  • Доступ через samba для связи с другой файловой системой в общем каталоге (ошибка разрешения)
  • Может ли кто-нибудь предложить другой метод, например sed удалить такие шаблоны?

  • Как запустить tnftpd без root на OS X?
  • Как загрузить с FTP-сайта
  • Совместное использование папки с Windows Host для Freebsd Guest
  • Определите, является ли видеокарта новой
  • Буфер обмена не работает между Win7 (локальным) и Linux (удаленным)
  • Как заменить раздел Ubuntu на Fedora Workstation 25?
  • 3 Solutions collect form web for “Удалите специальный шаблон ^ M из скрипта, который добавлен после FTP из окон в Unix”

    Окончания строк Windows состоят из двухсимвольной последовательности CR, LF. CR – символ возврата каретки, иногда представленный как \r , \015 , ^M и т. Д. Окончание строки Unix – это только символ LF.

    Способ преобразования окончаний строк Windows в конец строки Unix с использованием только стандартных утилит, присутствующих во всех вариантах Unix, – это использование утилиты tr .

     tr -d '\r' <thefile >thefile.new && mv thefile.new thefile 

    Если файл уже имеет окончание строки Unix, его содержимое не будет изменено.

    Если у вас есть много файлов для преобразования в текущем каталоге, вы можете использовать цикл. Предполагая, что у вас нет файлов, чье имя заканчивается на .new :

     for x in *; do tr -d '\r' <"$x" >"$x.new" && mv "$x.new" "$x" done 

    В Linux (за исключением некоторых встроенных систем Linux) или Cygwin вы можете использовать sed . Опция -i для редактирования файла на месте специфична для этих систем. Обозначение \r для символа CR является более распространенным, но не универсальным.

     sed -i -e 's/\r//g' thefile 

    dos2unix:

     sed -i -r -e 's/\r$//' file 

    Unix2Dos:

     sed -i -r -e 's/$/\r/' file 

    Использование sed :

     sed 's/^M//g' filename > newfilename 
    Linux и Unix - лучшая ОС в мире.