Як називається ^ М символ?


48

TexPad створює його. Я знаю, що це під якимось глухим ключем. Я просто не можу згадати це ім'я.

Синій символ:

введіть тут опис зображення

Я просто хочу масово видалити їх із свого документа.

Як ви можете це ввести?


Відповіді:


53

Він відомий як повернення вагона.

Якщо ви користуєтесь, vimви можете ввести режим вставки та набрати CTRL- v CTRL- m. Це ^ M - клавіатура, еквівалентна \ r .

Вставлення 0x0Dв шестигранний редактор виконає завдання.

Як видалити?

Ви можете видалити його за допомогою команди perl -p -i -e "s/\r//g" filename.

Як запропонував ОП у коментарях до цієї відповіді тут , ви навіть можете спробувати dos2unix filenameі побачити, чи це це виправить.

Як пропонує @steeldriver у коментарях, після відкриття редактора vim натисніть escклавішу та введіть :set ff=unix.

Список літератури

https://stackoverflow.com/questions/1585449/insert-the-carriage-return-character-in-vim

https://stackoverflow.com/a/7742437/1742825

-ksh: prihoda_ext.ksh: не знайдено [Немає такого файлу чи каталогу]


3
це може бути варто згадати VI / ВІМ , :set ff=unixа також
steeldriver

@steeldriver, зроблено :)
Рамеш

Дякую, @Ramesh. Я не маю уявлення, як це робити з кодами клавіатури. Ти хороший хлопець.
mikeserv

1
@mikeserv, використовуйте клавішу <kbd> </kbd>, щоб використовувати символи клавіатури. :)
Рамеш

2
+1 для відповіді на власне запитання "як це називається"
andrew lorien

7

Код

sed -i 's/^M//' filename.txt

Під час введення ^Mкоманди не використовуйте shift+6 & M. Ви повинні використовувати ctrl+v+m.


1
Ласкаво просимо в Unix Stackexchange! Зверніть увагу, як відформатувати тіло для коду. Зрештою, немає потреби в подяках та інших.
Лео Леопольд Герц 준영


-1

Як зауважує Рамеш, CTRL+ V CTRL+ Mмає надати вам буквальний характер - хоча ви не обмежуєтеся цим робити лише в vim- ви повинні мати можливість робити те ж саме в будь-якому канонічному режимі.

cat ./file | tr -d '\r' >./file

... може зробити цю роботу.


1
ви читаєте і пишете в один і той же файл, це не спричинить проблем
iruvar

@ 1_CR Я читаю з |pipeфайлу. Правда, проміжний файл tmp був би більш надійним - але буфера в трубі повинно бути достатньо. Все-таки, якщо це не так, це tr -d '\r' <<FILE >./file\n$(cat ./file)\nFILE\nбуло б впевненою справою - за умови, що у файлі немає \000символів, тобто.
mikeserv

Це більш ніж ймовірно стирається, ./fileперш ніж catз'явиться можливість прочитати його. Всі команди трубопроводу запускаються паралельно, і перенаправлення обробляються оболонкою до того, як задіяна команда буде виконана.
jlliagre

@mikeserv повторно містить вміст гередока- $(cat)виправлення: або (значне) проходження порожніх рядків або незакінчений останній рядок, або більше даних, ніж вміщено у доступній пам'яті. (rm file; tr -d '\r' >file) <fileуникає тих, якщо відтворення файлу добре (скидає власника / групу / permbits / ACL / контекст / тощо)
dave_thompson_085
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.