如果我打开在Windows中创建的文件,所有行都以^M结尾。如何一次删除这些字符?
当前回答
关于让^M出现的评论是对我有用的。在我的vi中只键入“^M”没有得到任何结果(未找到)。不过,CTRL+V CTRL+M序列做得很好。
我的工作替代命令是
:%s/Ctrl-V Ctrl-M/\r/g
在我的屏幕上看起来是这样的:
:%s/^M/\r/g
其他回答
以下命令用于重新格式化当前目录中的所有.sh文件。我在Fedora操作系统上测试了它。
for file in *.sh; do awk '{ sub("\r$", ""); print }' $file >luxubutmp; cp -f luxubutmp $file; rm -f luxubutmp ;done
通常有一个dos2unix命令可以用于此操作。只需确保您阅读了手册,因为GNU和BSD版本在如何处理参数方面有所不同。
BSD版本:
dos2unix $FILENAME $FILENAME_OUT
mv $FILENAME_OUT $FILENAME
GNU版本:
dos2unix $FILENAME
或者,您可以使用此处建议的任何答案创建自己的dos2unix,例如:
function dos2unix(){
[ "${!}" ] && [ -f "{$1}" ] || return 1;
{ echo ':set ff=unix';
echo ':wq';
} | vim "${1}";
}
发件人:文件格式
[Esc]:%s/\r$//
:set fileformat=unix将DOS转换为unix。
我找到了一个非常简单的方法:用nano:nano-file.txt打开文件
按Ctrl+O保存,但在按Enter键之前,按:Alt+D在DOS和Unix/Linux行结尾之间切换,或按:Alt+M在Mac和Unix/Linux行结尾之间转换,然后按Enter键保存,按Ctrl+X退出。