使用vim处理文本文件中的\ r \ n ^ M ^ @

时间:2012-12-05 15:57:19

标签: vim newline carriage-return

当我将excel文件中的数据行保存为制表符分隔的.txt文件,然后在VIM中打开这些文件时,我发现曾经是excel中的多行文件现在是VIM中的单行文件。 / p>

可以使用一些替换命令在VIM中分隔“行”:

%s/^M/\r\n/g

此后,“行”现在由^@分隔。 我使用另一个替换命令处理它:

%s/^@//g

我的问题是:

  1. 为什么我的多行txt excel文件在VI中以单行打开?
  2. 什么是^@
  3. 有没有更好的方法来“修复”我的txt文件?

2 个答案:

答案 0 :(得分:2)

您可以通过运行以下命令来解决此类问题:

dos2unix FILE_NAME

这会重新格式化文件的换行符(即它会修改你的文件)。

Mac OS X上不存在此命令


如果你没有dos2unix(例如你在Mac上),你可以使用sed:

sed 's/^M$//' input.txt > output.txt

如果您想通过执行替换来避免创建新文件,也可以使用sed -i

您可以输入{kbd> CTRL V ,然后输入 CTRL M ^M >

More reading here

答案 1 :(得分:1)

尝试此命令:

    :%s/^M/\r/g

\r是vim使用的回车符。 ^M字符是字面显示的换行符。