#include ステートメントのファイル名が *.h ファイルと正確に一致しない C/C++ ソース コードの本体があります。一致は正しいですが、大文字と小文字は区別されません。これは、Windows システムで発生するソース ファイルのタイプです。
#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'
置換は 1 回だけでよいと思いますが、グローバル g を追加すると、複数の発生に対処できます。 - この置換リストをディレクトリ内のすべてのファイルに適用します。
与えられた sed コマンド 2) の作成方法に関する提案をお願いしますinclude.lst
。私は残りを処理できると思います。