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

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

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

Может ли кто-нибудь предложить другой метод, например sed удалить такие шаблоны?

  • Ubuntu 16.10 медленно замедляется при загрузке после загрузки kali linux и Windows 10 в три раза
  • Изменение разрешений CIFS на FreeNAS?
  • не удалось получить доступ к USB в виртуальном боксе
  • Samba 4 имеет высокий уровень использования ЦП при доступе к подключенному диску через Windows
  • Linux замораживает случайно
  • Ричард Столлман сравнивает Linux с Windows
  • Fedora 16 не загружается после того, как Win7 установил GPT-диск
  • Печать в CUPS из Windows
  • 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 
    Interesting Posts

    Ошибка установки linuxmint 13 Maya, невидимая мышь

    Подключение USB-клавиатуры, синий-простой-агент отсутствует

    Является ли это возможным? Три моста Firewall с OpenBSD 6.0 с одним сервером OpenBSD?

    Как восстановить ключ GnuPG после переустановки?

    Избегайте проблем с Fedora и Windows путем установки на отдельные жесткие диски?

    Могу ли я сменить комбинацию клавиш на клавишу Windows?

    Увеличить изображение файловой системы

    Сравните два файла с первым столбцом и удалите повторяющуюся строку из второго файла в сценарии оболочки

    Отображать скорость передачи при выполнении «cp» из командной строки?

    В crontab можно указать пользователя из переменной?

    ssh-add на промежуточном узле ssh hop

    удалить все экземпляры _000 из нескольких файлов

    Как подключиться к моему телефону через последовательный порт bluetooth

    Почему «cat / tmp / out1> / tmp / in2 &» отображается как «bash» с помощью команды «ps»?

    XRandR отображает область отображения в некоторых конфигурациях с несколькими мониторами

    Linux и Unix - лучшая ОС в мире.