Vim:通过替换 ^M 连接行

Vim:通过替换 ^M 连接行

我有一个包含嵌入字符的文件^M。我想加入角色的台词^M

即:改变这个:

 ^M
            être, ^M
            étant, ^M
            été,Indicatif,Présent,suis,es,est,sommes,êtes,sont
 ^M
            être, ^M
            étant, ^M
            été,Indicatif,Imparfait,étais,étais,était,étions,étiez,étaient

对此:

être,étant,été,Indicatif,Présent,suis,es,est,sommes,êtes,sont
être,étant,été,Indicatif,Imparfait,étais,étais,était,étions,étiez,étaient

此命令删除^M但行未连接:

%s/\r//g

答案1

^M是 Windows 特定的 EOL(行尾),它由两个字符组成:回车符\r和换行符\n。所以你必须包括\n在你的替换命令中:

%s/\r\n//g

如果您想坚持使用原来的替换命令,那么您必须首先将文件的 EOL 格式从 Windows 格式转换为 Unix 格式。您可以使用DOS2UNIX执行此操作的工具:

$ dos2unix fileToConvert

答案2

awk '/\r$/ {sub(/\r$/, ""); printf "%s", $0; next} {print}' file

相关内容