我有一段 C/C++ 源代码,其中 #include 语句中的文件名与 *.h 文件不完全匹配。匹配正确,但不区分大小写。这是在 Windows 系统中出现的源文件类型。
我想更改所有源文件,以便所有#include
语句都与它们引用的文件名完全匹配。
所有要更改的文件名都用引号引起来。
例子:
文件列表
File1.h
FILE2.H
file1.cpp
文件1.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
。我想我可以处理剩下的。