使用sed -i时的额外尾部斜杠

时间:2015-09-02 20:42:25

标签: sed

我正在尝试在一些C代码中更改一些include语句,以便我将在集群上分发一个软件。我使用sed的for循环出错了。我想用“/opt/htslib/gcc48_1.2.1/include/hstlib/”替换我的代码的第242和246行之间的所有“htslib /”实例。这听起来很简单,所以我在for循环中尝试了它来递归目录中的所有文件并更改匹配的行。我的命令如下:

for i in `grep -rl 'htslib/bgzf.h' *`; do sed -i '242,246s/htslib\/opt\/htslib\/gcc48_1.2.1\/include\/htslib\//g' $i; done

但是,在替换中的“htslib”之后我得到一个额外的尾部斜杠,所以它看起来像这样:

/opt/htslib/gcc48_1.2.1/include/htslib//bgzf.h

如果有帮助,include语句就像这样开始:

htslib/bgzf.h

感谢您提出任何观点。

0 个答案:

没有答案