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

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
    1. justeunequestion
       
      Merci, oui c'est ça !! Merci
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    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
    1. dna.factory Messages postés 19911 Date d'inscription   Statut Modérateur Dernière intervention   1 621
       
      y'a même pas besoin d'échapper les acolades ? juste de le mettre entre guillemets ?
      c'est merveilleux.
      0
    2. justeunequestion
       
      Merci
      0
  3. dna.factory Messages postés 19911 Date d'inscription   Statut Modérateur Dernière intervention   1 621
     
    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