我有大量的 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)我需要找出@@
线条(这应该没问题,对吧?乍一看这似乎是正确的,但是否会diff
抛出任何其他需要被拉出的意外线条?)然后
B)我需要再创建两个文件,首先是 file_1.css 中剩余的唯一行,然后是 file_2.css 中剩余的唯一行。
显然,第一个“共同”文件将进入一个包含文件夹,然后作为一个包含在后面两个创建的文件中@import url("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
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
然后搜索body
with egrep "^body" *css
,它只产生了一个 incommon.css
和 none in ,而它显示andold.css
中有两个不同的条目。所以很明显这种方法是有缺陷的。file_1.css
file_2.css
如何创建这两个最终成为通用包含和覆盖文件的文件?