我必须从一个巨大的项目中删除所有font-family CSS delcarations,有内联CSS,SASS和常规CSS文件。
我开始使用grep来注释掉这些行,因为我觉得知道定义了什么字体会很有用。
我这样做的方法是在Sublime中搜索font-family:
并使用grep替换我在sublime中找到的字符串,例如:用font-family: Arial;
替换/* font-family: Arial; */
。
在整个网站上有大约4000个font-family声明,我的计划是使用grep替换我在Sublime的前几百个查找行中找到的所有font-family:
声明,然后再次搜索以查找没有评论的那些。
像这样,grep将处理大多数事件,并且我重复此过程的次数越多,未注释的字体声明就越少。
问题是我需要使用sublime或linux来搜索未注释的所有font-family:
声明。或者换句话说,找到包含此字符串的所有文件,而不包含/ *。
有什么想法吗?或替代解决方案?
这是我使用的grep命令,以防任何人需要它:
grep -rli 'font-family:Helvetica,Arial,sans-serif;' * | xargs -i@ sed -i 's/font-family:Helvetica,Arial,sans-serif;/\/* font-family:Helvetica,Arial,sans-serif; *\//g' @
答案 0 :(得分:0)
我使用了Sublime Text 2,CTRL + SHIFT + F然后检查了"正则表达式"区分大小写按钮旁边的按钮并使用此正则表达式:
https://regex101.com/r/pU0bB3/2
我发布了一个单独的正则表达式问题answered here。
答案 1 :(得分:0)
要排除已注释掉的font-family匹配项,您可以使用负向lookbehind(例如参见http://www.regular-expressions.info/lookaround.html)。即你会搜索
(?<!/\*)font-family\s*:[^;]+;
此外,可能更容易找到和替换内容的工具。例如在记事本++中,按&#34; Strg + F&#34;,然后选择选项卡&#34;在文件中查找&#34;,选择要替换内容的目录,选择toogle按钮&#34 ;正则表达式&#34;并为&#34;找到什么:&#34;输入
(?<!/\*)font-family\s*:[^;]+;
和&#34;替换为:&#34;输入
/*$0*/
并说出替换文件。希望有所帮助。