规范化行尾

时间:2013-11-20 14:59:58

标签: windows macos line-endings

尝试清理行结尾。 我在Git中有一个文件(主要在Windows和Mac OSX上的Eclipse中编辑)行结尾搞砸了;你可以在下面看到文件在Git diff中的显示方式。

在查看或编辑文件(cat,Eclipse,Emacs,Windows或OSX)的每种情况下,文件都可以正常显示。这只是显示这个问题的差异。

我在这里使用了Git规范化建议(http://git-scm.com/docs/gitattributes)并试图使用各种脚本替换行结尾而没有运气。

关于我如何修复此文件的任何想法(它不是我的源代码控制中唯一发生这种情况。但是,其他文件很好,我找不到一致的模式来帮助我理解原因)。

--- a/src/main/java/com/pcs/Utils.java
+++ b/src/main/java/com/pcs/Utils.java
@@ -1 +1 @@
-package com.pcs;^M^M/*^M^M LABORATORY INFORMATION SYSTEM V1.0^M Copyright (C) 2001 by John 
\ No newline at end of file
+package com.pcs;^M^M/*^M LABORATORY INFORMATION SYSTEM V1.0^M

2 个答案:

答案 0 :(得分:1)

单个^ M个字符(或\ r \ n)是Mac换行符。您可以使用' mac2unix'删除它们。 Dos2unix不会转换Mac换行符。 Mac2unix不会转换DOS换行符。

答案 1 :(得分:0)

像往常一样......在我将问题发布到Stack之后的快速解决方案。

我在搜索了如何修复Mac OSX中的行结尾后,尝试了两个解决方案。

  1. DOS2UNIX的
  2. cat file | col -b> file2的
  3. 这些都没有奏效。

    最后,我尝试了'perl -pi -e'/ \ r / \ n / g''这就是诀窍。

    公平地说,虽然这出现在git diff中,但它不是一个git问题,它只是一个Mac / Windows行结束问题。