Премиальное программное обеспечение и практические уроки
Как удалить \r в файлах под Windows в Linux
линуксСкопируйте файл test.txt, написанный в vim, вокнаЕсли вы напишете скрипт оболочки Linux в Windows и скопируете его в Linux, возникнут проблемы.Разрыв строки^M на теле!
В системах Unix каждая строка заканчивается символом «<换行>", то есть "\n";
В Windows каждая строка заканчивается на "<换行><回 车>», то есть «\n\r».
Прямым результатом является то, что при открытии файла в системе Unix в Windows весь текст станет одной строкой;
Если файл в Windows открыт в Unix, в конце каждой строки может быть дополнительный символ ^M.
Используйте vim для обработки
В командном режиме vim введите %s/^M$//g
Нажатие Enter автоматически удалит все символы ^M в файле.
Итак, что же на самом деле означает эта команда? % соответствует всему файлу, s обозначает замену, а ^M вводится с помощью Ctrl+V Ctrl+M. $ после M соответствует концу строки, а g в конце заменяет всё совпавшее содержимое в каждой строке.
Поняв значение команды, вам будет проще использовать её более гибко. Например, если вы хотите заменить все Vim-коды в файле на VIM, вы можете использовать такую команду: :%s/Vim/VIM/g.
Метод 1: :%s/^M//g
В командном режиме: введите: %s/^M//g и затем нажмите Enter, чтобы заменить
Обратите внимание, что ввод «^M» генерируется сочетаниями клавиш «Ctrl+v» и «Ctrl+M» соответственно.
Метод 2::set fileformat=unix
Открытие текстовых файлов с помощью vi
vi Имя файла для редактирования
Войти в командный режим
:set fileformat=unix
:w
Метод 3: Использование инструмента sed
Использование инструмента sed
sed 's/^M//' имя_файла > tmp_имя_файла
Метод 4: tr -d '\r'
Поскольку в символе возврата строки Windows есть лишний символ '\r', вы также можете удалить '\r', чтобы добиться следующего:
tr -d '\r'
Метод 5: команда dos2unix (наиболее часто используемый метод)
команда dos2unix:
dos2unix Имя файла для преобразования
Конвертируйте файлы напрямую в формат Unix
Описанный выше метод позволяет преобразовать файлы, отредактированные в Windows, в файлы, которые можно прочитать в Linux.