我一直在寻找一种方法来评论.css
文件,该文件可能在@font-face
,#id
,选择器和/或{{1}中显示某个字体系列}}。我可以使用.class
执行此操作,如果所有内容都在sed
(追加)和/foobar/ a\
(插入)的一行上,但如果所有内容都在多行上,那么最好的方法是什么?
之前
/foobar/ i\
最终结果:
@font-face {
font-family: "foobar";
src: url(fonts/foobar.ttf);
}
h1 {
font-family: "foobar";
}
.foobar {
font-family: "foobar";
}
答案 0 :(得分:2)
这可能适合你(GNU sed):
sed '/{/!b;:a;$!N;/}/!ba;/font-family:\s*"foobar";/s/.*/\/* & *\//' file
答案 1 :(得分:1)
可以使用perl和awk
perl -00 -lpe '$_ = "/* $_ */" if /font-family:\s+.foobar/' file
awk -v RS= '/font-family:[[:blank:]]+.foobar/ {$0 = "/* " $0 " */"} 1' file
这两种方法的工作方式相同:逐段读取文件(空白行分隔),测试正则表达式,如果找到则添加注释标记。
要在原地编辑文件,您可以使用
perl -i ...(as above)...
awk ...(as above)... > tmpfile && mv tmpfile file