2012-04-16 52 views
1

我有以下两个选择在我的CSS,这种格式布局:发现选择

// file1.css 
#myId { 
    margin-right:0; 
    color:#f00; 
} 

// file2.css 
#otherId { margin-right:0; color: #f00 } 

我的目标是获得选择和使用的颜色值ack/grep搜索。

如果我:

ack-grep '(^.*color:\s+\d+)'

我会得到:

file1.css 
color:#f00; 

file2.css 
#otherId { margin-right:0; color: #f00 } 

这种搜索工作的罚款为file2.css,但不是这么好file1.css,可能是因为我用^以匹配一行的开始..我将如何一直匹配回到某个css选择器的开始处(从一个id或一个类或标记名开始)?

更加明显,我想:

file1.css 
#myId {margin-right:0; color:#f00; 

file2.css 
#otherId { margin-right:0; color: #f00 } 

(和选择并不一定是一个ID ..我应该匹配回到以前}或文件的开头

+0

查看此答案:http://stackoverflow.com/a/10891045/288906 – 2014-12-29 01:52:17

回答

2

?无论是grep的也不ACK支持多行的正则表达式:

ack FAQ

还有其他的选择,比如pcregrep我WOU ld使用一些CSS解析器。