【问题标题】:How to escape ^M from svn:eol-style native如何从 svn:eol-style native 中转义 ^M
【发布时间】:2012-08-31 05:11:36
【问题描述】:

我们在我们的 subversion 存储库中为 shell 脚本指定了 eol-style:native 属性;这消除了在 Windows 上编辑文件并在 UNIX 机器上执行时包含的 ^M 字符。

但最近我们遇到了一个问题:

一个shell脚本写了以下语句:

sed 's/^M//g' source_file > target_file

替换数据文件中的 ^M 个字符。但是当脚本在 subversion 中签入并在 unix 框上更新时,语句变为:

sed 's/
//g' source_file > target_file

真正的问题

我需要一种方法将 ^M 字符放入带有 eol-style:native 属性的颠覆中的 shell 脚本中。我不希望这个特定的 ^M 字符在转换中丢失。有可能吗?

【问题讨论】:

  • 我真的很惊讶 Subversion 会影响这个,因为这不是 ,而只是一个 字符。我认为这是 Subversion 中的一个错误。如果您将此文件更改为具有LFsvn:eol-style 怎么办?这会影响您的 sed 脚本吗?否则,希望您的 sed 脚本是 GNU 并且需要 \r

标签: svn unix eol


【解决方案1】:

使用 \r 代替 ^M

sed 's/\r//g' source_file > target_file

【讨论】:

  • 我们需要修改的数据文件有^M个字符; \r 会摆脱它们吗?
  • @SiB ^M 是一个 \r,除非你的字面意思是插入符号 + M 而不是 ctrl+M
猜你喜欢
  • 2011-08-05
  • 2016-01-02
  • 2017-04-15
  • 1970-01-01
  • 1970-01-01
  • 2021-07-18
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
相关资源
最近更新 更多