Transformer un fichier sans extension en dot

Résolu
justeunequestion -  
 justeunequestion -
Bonjour,

j'ai un fichier que j'ai générer par grep dans mon terminal donc sans extension spécial.
Il est de ce type:

toto/blabla/truc.sql
toto/blabla/machin.html
toto/blibli/truc.pl
tata/chose.sql

et il y a 13 pages de chose comme ça!

J'aimerais en faire un graphique genre dot.

Connaissez-vous un moyen rapide de transformer mon fichier automatiquement en dot donc en quelque chose comme ça:

digraph mon_graphe {
a - b - c;
b - d;
}

qui pourra être lu dans des logiciels tel que graphviz ou tulip?

Merci d'avance

A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Je suppose qu'avec "sed" tu devrais pouvoir remanier ton fichier pour qu'il soit conforme à la syntaxe attendu par ton programme ;-))

Un petit exemple avec ton fichier :

$ cat toto 
toto/blabla/truc.sql
toto/blabla/machin.html
toto/blibli/truc.pl
tata/chose.sql

$ sed '1i\graph G{' toto | sed 's#/# -- #g' | sed 's/[^ ]*\..*\b/"&"/'| sed '$a\}' > toto.dot

$ cat toto.dot
graph G{
toto -- blabla -- "truc.sql"
toto -- blabla -- "machin.html"
toto -- blibli -- "truc.pl"
tata -- "chose.sql"
}

$ dot -Tpng toto.dot -o toto.png

$


Résultat ;-))
2
justeunequestion
 
Merci, oui c'est ça !! Merci
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
avec awk
$ awk -F/ 'BEGIN{OFS=" -- " ; print "graph G{"} {sub(".*", "\"&\"", $NF) ; print } END{print "}"}' fichier
graph G{
toto -- blabla -- "truc.sql"
toto -- blabla -- "machin.html"
toto -- blibli -- "truc.pl"
tata -- "chose.sql"
}
$ 
1
dna.factory Messages postés 26003 Date d'inscription   Statut Modérateur Dernière intervention   1 618
 
y'a même pas besoin d'échapper les acolades ? juste de le mettre entre guillemets ?
c'est merveilleux.
0
justeunequestion
 
Merci
0
dna.factory Messages postés 26003 Date d'inscription   Statut Modérateur Dernière intervention   1 618
 
tu parles de grep, donc je suppose qu'on est dans un environement n*x
auquel cas, tu as accès aux awk et au sed.

dans ce cas, c'est relativement simple de faire ce que tu veux... à condition que tu nous dise ce que tu veux...
car en l'occurence je ne vois aucun rapport entre l'origine et la destination.
0