我有一个C/C++源代码,其中#include语句中的文件名与* .h文件完全不匹配。匹配是正确的,但不区分大小写。这是在Windows系统中发生的源文件的类型。更改#include文件名以匹配大小写
我想要更改所有源文件,以便所有#include
语句与它们所引用的文件名完全匹配。
要更改的所有文件名都用引号引起来。
例子:
文件
File1.h
FILE2.H
file1.cpp
file1.cpp
名单#include "file1.h"
#include "file2.h"
变化file1.cpp到
#include "File1.h"
#include "FILE2.H"
我想创建一个自动化脚本到达这个更新。
我列出了下面这些步骤中的步骤,但我似乎无法将这些部分放在一起。
- 创建所有* .h文件的列表,
ls *.h > include.lst
。这将创建具有正确大小写的所有文件名的文件。 - 使用
include.lst
中的文件名创建一个sed命令's/<filename>/<filename>/I'
,它执行不区分大小写的搜索并用正确套用的文件名替换匹配。我相信我只需要进行一次替换,但添加全局g将会处理多次发生。 - 将此替换列表应用于目录中的所有文件。
我想建议如何创建sed命令2)给出include.lst
。我想我可以处理其余的事情。
使用或考虑您的固定源树符合C lang惯例。使用脚本来生成'mv FILE2.H file2.h'。 JMHO。祝你好运。 – shellter
是的,降低所有文件是最终目标,但一次只能一步。 – KeithSmith