如果我打开在Windows中创建的文件,所有行都以^M结尾。如何一次删除这些字符?
当前回答
dos2unix可以直接修改文件内容。
您可以直接在文件上使用它,而不需要临时文件重定向。
dos2unix input.txt input.txt
以上使用假定的美国键盘。使用-437选项使用英国键盘。
dos2unix -437 input.txt input.txt
其他回答
dos2unix可以直接修改文件内容。
您可以直接在文件上使用它,而不需要临时文件重定向。
dos2unix input.txt input.txt
以上使用假定的美国键盘。使用-437选项使用英国键盘。
dos2unix -437 input.txt input.txt
在VIM中:
:e ++ff=dos | set ff=unix | w!
带VIM的外壳:
vim some_file.txt +'e ++ff=dos | set ff=unix | wq!'
e++ff=dos-强制以dos格式打开文件。
set ff=unix-将文件转换为unix格式。
:%s/\r\+//g
在Vim中,它去掉所有回车符,只留下换行符。
使用以下命令:
:%s/^M$//g
要显示^M,请键入CtrlV,然后键入CtrlM。CtrlV告诉Vim按字面意思输入下一个字符。
来自Wikia:
%s/\r\+$//g
这将查找所有回车符(一个或多个重复),直到行尾并删除,因此仅\n将保留在EOL。
推荐文章
- 即使模板文件存在,Flask也会引发TemplateNotFound错误
- 如何在Ruby中创建文件
- __FILE__宏显示完整路径
- 如何在Vim注释掉一个Python代码块
- 如何在可视块模式插入?
- 如何将文件指针(file * fp)转换为文件描述符(int fd)?
- 强迫自己掌握vi的最好方法是什么?
- 如何回到行之前编辑的最后一个在Vim?
- 如何删除文件中的特定行?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 使用Java重命名文件
- 如何从Python包内读取(静态)文件?
- 为什么我得到“Pickle - EOFError: run out of input”读取一个空文件?
- Awk不打印换行符