Transformer un fichier sans extension en dot

Résolu/Fermé
justeunequestion - 9 déc. 2011 à 10:35
 justeunequestion - 9 déc. 2011 à 14:02
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
9 déc. 2011 à 11:19
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
9 déc. 2011 à 11:52
Merci, oui c'est ça !! Merci
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 déc. 2011 à 12:16
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 24956 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 25 avril 2024 1 609
9 déc. 2011 à 12:52
y'a même pas besoin d'échapper les acolades ? juste de le mettre entre guillemets ?
c'est merveilleux.
0
justeunequestion
9 déc. 2011 à 14:02
Merci
0
dna.factory Messages postés 24956 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 25 avril 2024 1 609
9 déc. 2011 à 11:17
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