多くのサブサイトでさまざまなコア スタイルシートを変更することで誰かがうめき声を上げたところを調べるための CSS ファイルがたくさんあります。元の開発者がある程度の先見性を持っていれば、マスター スタイルシートを含めて、必要な要素をオーバーライドしたことは明らかです…</p>
最初comm
はうまくいくのではないかと考え始めましたが、ソートされた入力ファイルを受け取る必要があることがすぐにわかりました。
次に、いくつかの読書と調査diff
を通じて、次のように切り替えました。
diff --unchanged-group-format="@@ %dn,%df%c'\012'%<" --old-group-format='' --new-group-format='' --changed-group-format='' file_1.css file_2.css
前のものは明らかにほとんどありますが、次のとおりです。
A)行をgrepする必要があり@@
ます(これで問題ありませんよね?一見これは正しいdiff
ように見えますが、ヤンクする必要がある他の予期しない行をスローしますか?)そして、
B)さらに 2 つのファイルを作成する必要があります。最初は file_1.css の残りの一意の行であり、次に file_2.css の残りの一意の行です。
明らかに、最初の「共通の」ファイルはインクルード フォルダに入り、その後に作成された 2 つのファイルに含まれます。@import url("common.css");
次の簡単な変更により、参照している後者の 2 つのファイルが作成されると考えています。
diff --unchanged-group-format='' --old-group-format="@@ %dn,%df%c'\012'%<" --new-group-format='' --changed-group-format='' file_1.css file_2.css
diff --unchanged-group-format='' --old-group-format='' --new-group-format="@@ %dn,%df%c'\012'%<" file_1.css file_2.css
サンプル ファイル:
たとえば、次のテストを実行すると、次のようになります。
diff --unchanged-group-format="@@ %dn,%df%c'\012'%<" --old-group-format='' --new-group-format='' --changed-group-format='' file_1.css file_2.css | egrep -v "^@@\d*" > common.css
diff --unchanged-group-format='' --old-group-format="@@ %dn,%df%c'\012'%<" --new-group-format='' --changed-group-format='' file_1.css file_2.css | egrep -v "^@@\d*" > old.css
そして、 with を検索するbody
とegrep "^body" *css
、 にボディのみが生成され、 にはボディが生成されcommon.css
ませんでしたが、とold.css
には 2 つの異なるエントリがあることが示されました。したがって、明らかにこの方法論には欠陥があります。file_1.css
file_2.css
最終的に共通のインクルード ファイルとオーバーライド ファイルになるこれら 2 つのファイルを作成するにはどうすればよいでしょうか。