2023年8月2日发(作者:)

Linux下回车^M去除⽅法在windows上编写的shell、python等脚本在Linux上⽆法正常的执⾏,会有 ^M 相关提⽰,原因 :在Linux上使⽤vim打开⽂件,显⽰很多的 ^M 字符,主要是因为在Windows下换⾏使⽤CRLF两个字符来表⽰,其中CR为回车(ASCII=0x0D),LF为换⾏(ASCII=0x0A),⽽在Linux下使⽤LF⼀个字符来表⽰。在Linux下使⽤vim来查看⼀些Windows下创建的脚本⽂件时,会发现在每⼀⾏尾部有^M字符,其实它是显⽰CR回车字符Unix体系⾥,每⾏结尾只有“<换⾏>”,即“n”;Windows体系⾥⾯,每⾏结尾是“<换⾏><回 车>”,即“nr”。⼀个直接结果是,Unix体系下的⽂件在Windows⾥打开的话,所有⽂字会变成⼀⾏;⽽Windows⾥的⽂件在Unix下打开的话,在每⾏的结尾可能会多出⼀个^M符号。如果正常编辑⽂件中看不见^M,可以⽤”cat -A ”号令查看。使⽤vim⽅式处理在vim命令模式下输⼊%s/^M$//g回车即会⾃动删除该⽂件中的所有 ^M 字符。% 指匹配整个⽂件,s 是置换的意思,^M 注意要⽤ Ctrl + V Ctrl + M 来输⼊,M 后⾯的 $ 代表匹配⾏尾的内容,最后的 g 则表⽰每⾏中匹配到的内容都要置换。理解了命令的含义,就好变通使⽤了,⽐如说,要将某个⽂件中的 Vim 全部替换成 VIM,则可以使⽤这样的命令::%s/Vim/VIM/g。⽅法1:在命令模式下:输⼊:%s/^M//g 然后,回车即可替换注,其中”^M”的输⼊,分别是“Ctrl+v”、“Ctrl+M”键⽣成的⽅法2:使⽤vi打开⽂本⽂件vi 命令模式下输⼊:set fileformat=unix:w⽅法3:使⽤sed ⼯具sed ’s/^M//’ filename > tmp_filename⽅法4:既然window下的回车符多了‘r’,那么当然通过删除‘r’ ,也可以实现:tr -d ‘r’⽅法5:使⽤Linux上的⼯具tofrodos(1)安装tofrodossudo apt-get install tofrodos实际上它安装了两个⼯具:todos(相当于unix2dos),和fromdos(相当于dos2unix)安装完即可,现在你已经可以进⾏⽂本格式的转换啦。⽐如: todos (即unix2dos )fromdos (即dos2unix )PS :编辑器IDE设置⽂件回车格式为unix格式1. VSCode : 在⽂件编辑窗⼝,点击右下⾓的CRLF(选择⾏尾序列),然后选择LF保存⽂件。

2023年8月2日发(作者:)

Linux下回车^M去除⽅法在windows上编写的shell、python等脚本在Linux上⽆法正常的执⾏,会有 ^M 相关提⽰,原因 :在Linux上使⽤vim打开⽂件,显⽰很多的 ^M 字符,主要是因为在Windows下换⾏使⽤CRLF两个字符来表⽰,其中CR为回车(ASCII=0x0D),LF为换⾏(ASCII=0x0A),⽽在Linux下使⽤LF⼀个字符来表⽰。在Linux下使⽤vim来查看⼀些Windows下创建的脚本⽂件时,会发现在每⼀⾏尾部有^M字符,其实它是显⽰CR回车字符Unix体系⾥,每⾏结尾只有“<换⾏>”,即“n”;Windows体系⾥⾯,每⾏结尾是“<换⾏><回 车>”,即“nr”。⼀个直接结果是,Unix体系下的⽂件在Windows⾥打开的话,所有⽂字会变成⼀⾏;⽽Windows⾥的⽂件在Unix下打开的话,在每⾏的结尾可能会多出⼀个^M符号。如果正常编辑⽂件中看不见^M,可以⽤”cat -A ”号令查看。使⽤vim⽅式处理在vim命令模式下输⼊%s/^M$//g回车即会⾃动删除该⽂件中的所有 ^M 字符。% 指匹配整个⽂件,s 是置换的意思,^M 注意要⽤ Ctrl + V Ctrl + M 来输⼊,M 后⾯的 $ 代表匹配⾏尾的内容,最后的 g 则表⽰每⾏中匹配到的内容都要置换。理解了命令的含义,就好变通使⽤了,⽐如说,要将某个⽂件中的 Vim 全部替换成 VIM,则可以使⽤这样的命令::%s/Vim/VIM/g。⽅法1:在命令模式下:输⼊:%s/^M//g 然后,回车即可替换注,其中”^M”的输⼊,分别是“Ctrl+v”、“Ctrl+M”键⽣成的⽅法2:使⽤vi打开⽂本⽂件vi 命令模式下输⼊:set fileformat=unix:w⽅法3:使⽤sed ⼯具sed ’s/^M//’ filename > tmp_filename⽅法4:既然window下的回车符多了‘r’,那么当然通过删除‘r’ ,也可以实现:tr -d ‘r’⽅法5:使⽤Linux上的⼯具tofrodos(1)安装tofrodossudo apt-get install tofrodos实际上它安装了两个⼯具:todos(相当于unix2dos),和fromdos(相当于dos2unix)安装完即可,现在你已经可以进⾏⽂本格式的转换啦。⽐如: todos (即unix2dos )fromdos (即dos2unix )PS :编辑器IDE设置⽂件回车格式为unix格式1. VSCode : 在⽂件编辑窗⼝,点击右下⾓的CRLF(选择⾏尾序列),然后选择LF保存⽂件。