Salut les gars,
j'ai un fichier sous ce format :
Code :
- CLASS <nom_classe1> : <parent1>
- ATTR1
- ATTR2
- CLASS <nom_classe2> : <parent2>
- ATTR1
- ATTR2
- ...
|
Et j'aimerais le diviser en autant de fichiers qu'il y a de classes comme ceci :
nom_classe1.txt
Code :
- CLASS <nom_classe1> : <parent1>
- ATTR1
- ATTR2
|
nom_classe2.txt
Code :
- CLASS <nom_classe2> : <parent2>
- ATTR1
- ATTR2
|
Sachant que dans mes noms de classes il peut y avoir des espaces, des caracteres speciaux... etc. Je ne veux garder que les lettres a-z A-Z et les underscores.
J'ai ce script qui fonctionne mais la partie renommage prend des plombes (le fichier principal fait plusieurs Mo et contient plus de 100 classes) :
Code :
- cat $file | awk -v f=${file} '/CLASS </{s++}{print > "classes_" f "/class" s}'
- # Renommer les fichiers prend des plombes !
- for class in `ls classes_$file/class*`; do
- mv $class classes_$file/`head -n1 $class | cut -d '<' -f2 | sed s/"[^a-zA-Z_]"//g`.txt
- done
|
J'aimerai intégrer le renommage dans la commande awk pour accélérer mais j'y arrive pas... vous pouvez m'aider ?