从CSS中提取ID

时间:2010-06-02 14:13:28

标签: shell sed

我的CSS文件包含许多条目,如

#id1, #id2, #id3, #id4 { ... }
#id3, #id2 { ... }
#id2, #id4 { ... }

我想使用命令行工具(msys)提取唯一ID列表。 唯一意味着列表中的任何条目仅呈现一次。怎么样?

PS:我知道如何使用python,但是awk / sed / cat呢?

2 个答案:

答案 0 :(得分:1)

试试这个

cat file.css | grep -o '#[a-zA-Z0-9-]*' | sort -u

编辑:不幸的是,这个正则表达式非常粗糙,并允许十六进制颜色作为ID传递..

如果你的文件中的css是打开{总是与#ids在同一行上,那么你可以使用这种语法:

cat file.css | grep { | cut -d'{' -f1| grep -o '#[a-zA-Z0-9-]*' | sort -u

答案 1 :(得分:0)

在awk中它可能更容易:

awk -F'[,[:space:]]' -v RS=# 'NF{if (!a[$1]++) print $1}' file.css

虽然此代码不会检查是否存在“{...}”。