2010-06-02 8 views
2

J'AVONS le fichier CSS avec beaucoup d'entrée commeID Extrait du CSS

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

Je veux extraire la liste des ID uniques à l'aide des outils de ligne de commande (de MSYS). Unique signifie toute entrée dans la liste présentée une seule fois. Comment? PS: Je sais comment faire en utilisant python, mais qu'en est-il de awk/sed/cat?

Répondre

1

Essayez cette

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

Edit: malheureusement, ce regexp est très brut et permettra couleurs hexadécimaux passer comme ID ..

Si css dans vos fichiers sont tels que l'ouverture {est toujours sur la même ligne aveC#ids, alors vous une utilisez la syntaxe suivante:

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

'[a-zA-Z0-9-]'. – SLaks

+0

@SLaks: merci, j'ai complètement oublié -. Et il y avait deux ensembles correspondants dans la tentative de ne pas collecter les couleurs hexadécimales, mais cela n'a pas fonctionné de toute façon. –

+1

http://uuoc.com/ ;-) – Johnsyweb

0

En awk, il peut être plus facile:

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

bien que ce code ne vérifie pas la présence de '{...}'.