我正在尝试使用vim批量修复一些.scc文件,并且需要将替换标记传递给它。
我正在尝试使用vim -E
来传递此行":s/\r/\r/g"
我尝试将单个字符作为变量嵌入引号中,但\r
将其弄乱。
任何建议都将受到赞赏。
答案 0 :(得分:1)
猜测你真正想做什么,因为它听起来不像是一次性改变。以下内容将删除所有\r
。
注意它会进行就地编辑 - 无需重定向等。
perl -i.bak -p -e 's/\r+//g' filename(s)...
如果您想用单个\r
替换
perl -i.bak -p -e 's/\r+/\r/g' filename(s)...
Perl会保留备份,但你也应该这样做。
它没有使用vim
,但也许你不应该这样做。
答案 1 :(得分:0)
在Vim中,您必须在搜索部分使用\n
,在替换部分使用\r
。但是将\n
替换为\r
听起来很像对我无所作为。
无论如何,仅仅为了替换而启动Vim可能有点太多了。您可以使用sed
:
$ sed -i.orig 's/foo/bar/' foo.txt
阅读$ man sed
了解详情。
答案 2 :(得分:0)
我只需要正确的报价水平。我之前提到的问题是,我们得到的文件包含可在Mac上制作的PC双线断点,并且PC无法正确读取它们。
所以使用sed来s / \ r / \ r \ n / g由于某些原因并没有真正起作用,也许我可以更多地探索它。但我认为将这些传递给vim会有所帮助。我必须使用vim发送:set format = dos到文件。
谢谢大家。