^ M字符叫什么?


Answers:


53

这被称为回车。

如果你使用vim,你可以进入插入模式和类型CTRL- - 。v CTRL m^ M是键盘相当于用\ r

插入0x0D十六进制编辑器即可完成此任务。

如何删除?

您可以使用命令将其删除perl -p -i -e "s/\r//g" filename

由于OP在这个答案的意见建议在这里,你甚至可以尝试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:Revenue_ext.ksh:找不到[没有这样的文件或目录]


3
它可能是值得一提的VI / VIM :set ff=unix以及
steeldriver

@steeldriver,完成了:)
Ramesh

谢谢,@ Ramesh。我不知道该怎么做这些键盘代码。你真是个好人
mikeserv 2014年

1
@mikeserv,请使用<kbd>键</ kbd>使用键盘符号。:)
Ramesh 2014年

2
+1回答实际的问题“它叫什么”
安卓



-1

作为拉梅什指出,CTRL+ V CTRL+ M应该让你的文字字符-尽管你不是仅限于在做这个vim-你应该能够做同样的任何规范模式终端。

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

...可能会做。


1
您正在读取和写入同一文件,这不会引起问题

@ 1_CR我正在读取|pipe文件。的确,中间的tmp文件会更健壮-但管道中的缓冲区应该足够。尽管如此,如果tr -d '\r' <<FILE >./file\n$(cat ./file)\nFILE\n文件不是\000字符,那肯定是可以确定的。
mikeserv 2014年

这很有可能./filecat有机会阅读之前将其擦除。在执行受影响的命令之前,管道的所有命令并行启动,并由外壳程序处理重定向。
jlliagre

@mikeserv $(cat)修复heredoc包含的问题:或(有效)尾随空行或末尾未终止,或者数据超出了可用内存的容量。(rm file; tr -d '\r' >file) <file避免这些,如果可以重新创建文件(重置所有者/组/权限/ ACL /上下文/等)
dave_thompson_085
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.