我有一個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