1

是的,这是一个非常懒惰的问题,但我认为这是人们经常遇到的问题,以至于这里的某人已经写了一些东西可以分享。

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

4

3 回答 3

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

这应该非常强大,因为它应该捕获任何合法格式,#include但不能捕获其他任何东西。

于 2010-02-12T01:16:24.700 回答
1

你应该在 OS X 中有 bash/awk/sed

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

或者

 sed -i.bak '/#include/s/\\/\//g' *.c
于 2010-02-12T01:17:54.123 回答
0

Sed 是前进的方向,所以在你的 mac 上做。

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

于 2010-02-12T01:17:59.927 回答