是的,这是一个非常懒惰的问题,但我认为这是人们经常遇到的问题,以至于这里的某人已经写了一些东西可以分享。
我有大量的 C 文件,其中包含#include
使用 Windows 相对路径的语句。我正在其他操作系统上编译代码(立即在我的 OS X 开发机器上),并且需要在这些包含语句中用正斜杠替换所有反斜杠。所以,从类似的东西#include "libs\helper.h"
到#include "libs/helper.h"
.
是的,这是一个非常懒惰的问题,但我认为这是人们经常遇到的问题,以至于这里的某人已经写了一些东西可以分享。
我有大量的 C 文件,其中包含#include
使用 Windows 相对路径的语句。我正在其他操作系统上编译代码(立即在我的 OS X 开发机器上),并且需要在这些包含语句中用正斜杠替换所有反斜杠。所以,从类似的东西#include "libs\helper.h"
到#include "libs/helper.h"
.
sed '/^[ ]*#[ ]*include/ s:\\:/:g'
这应该非常强大,因为它应该捕获任何合法格式,#include
但不能捕获其他任何东西。
你应该在 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
Sed 是前进的方向,所以在你的 mac 上做。
sed '/^#include/s/\\/\//g'