Как называется символ ^ M?


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: yield_ext.ksh: не найдено [Нет такого файла или каталога]


3
это может быть стоит упомянуть VI / ВИМ , :set ff=unixа также
steeldriver

@steeldriver, готово :)
Рамеш

Спасибо, @Ramesh. Я понятия не имею, как сделать эти коды клавиатуры. Ты хороший парень.
mikeserv

1
@mikeserv, используйте <kbd> key </ kbd> для использования символов клавиатуры. :)
Рамеш

2
+1 за ответ на реальный вопрос «как это называется»
Эндрю Лориен

7

Код

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

При вводе ^Mкоманды не используйте shift+6 & M. Вы должны использовать ctrl+v+m.


1
Добро пожаловать в Unix Stackexchange! Пожалуйста, обратите внимание, как отформатировать тело для кода. Нет необходимости для благодарности и других, в конце концов.
Лео Леопольд Герц 준영


-1

Как отмечает Рамеш, CTRL+ V CTRL+ Mдолжен дать вам буквальный символ - хотя вы не ограничены в этом только в vim- вы должны быть в состоянии сделать то же самое в любом каноническом режиме tty.

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 re heredoc-содержащий- $(cat)fix: или (значительный) конечные пустые строки или неопределенная последняя строка, или больше данных, чем помещается в доступной памяти. (rm file; tr -d '\r' >file) <fileизбегает их, если воссоздание файла в порядке (сбрасывает владельца / группу / permbits / ACL / context / etc)
dave_thompson_085
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.