如何从不存在 dos2unix、perl、tr 和 sed 的文件中删除 Ctrl-M?

如何从不存在 dos2unix、perl、tr 和 sed 的文件中删除 Ctrl-M?

假设您正在一台非常古老的 UNIX 服务器上工作,其中dos2unixperltrsed存在。如何将文件从DOSUNIX格式?

答案1

我认为您指的是删除行尾的插入符号-M。您可以使用 vi 中的搜索和替换来执行此操作。

在 vi 中我通常这样做:(其中“^”代表 CTRL):

:%s/^V^M//g

屏幕上显示为:

:%s/^M//g

答案2

tr没有或的服务器sed必须非常旧,或者缺少一些基本命令。希望ed就在那里;它存在于Unix 第一版

ed /path/to/file
1,$s/^V^M$//
w
q

其中^V^M表示先键入Ctrl+ V,然后键入Ctrl+ M(输入文字换行符)。如果您知道所有行都以 CR LF 结尾,则可以使用1,$s/.$//它(不加区别地删除每行的最后一个字符)。

相关内容