2010-02-12 67 views
1

是的,这是一个非常懒惰的问题,但我认为这是人们经常有足够的问题,这里的某个人可能已经写了一些东西分享。脚本在许多文件中用替换会是什么样子?

我有大量的C语言文件,使用Windows相对路径的#include语句。我正在编译其他操作系统上的代码(立即在我的OS X开发机器上),并且需要用这些include语句中的正斜杠来替换所有反斜杠。所以,从#include "libs\helper.h"#include "libs/helper.h"

+0

看起来像一个5个字符的正则表达式的工作。假设你不在其他地方使用反斜杠。 – 2010-02-12 01:12:19

回答

1

你应该有庆典/ awk的/在OS X sed的

for cfile in *.c 
do 
    awk '/#include/{gsub(/\\/,"/")}1' cfile >temp 
    mv temp cfile 
done 

sed -i.bak '/#include/s/\\/\//g' *.c 
+0

你可以选择不同的分隔符... – 2010-02-12 01:21:40

2
sed '/^[ ]*#[ ]*include/ s:\\:/:g' 

这应该是非常可靠的,因为它应该抓住的#include而不是别的任何法律格式。

0

桑达正向因此,无论是在Mac的方式。

sed '/^#include/s/\\/\//g'

相关问题