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

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

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

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

  • Можно ли замаскировать файл другим?
  • Почему мой Grub не инициализирован в ботинке?
  • Как получить Windows на меню grub? Использование двух жестких дисков; Сначала загрузочный загрузчик Windows
  • Ошибка при установке Ubuntu
  • Эквивалент Unix / Linux для проверки обхода байпаса Windows
  • Почему клиенты RDP в Linux намного медленнее, чем в Windows?
  • Визуально отображать раскладки клавиатуры X.org? / Также: откуда взялись раскладки клавиатуры X.org?
  • Linux в основном среде Windows dev
  • 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 - лучшая ОС в мире.