====== sqldump2txt ====== Un script pour transformer un dump mysql (structure seule) en txt. Les préfixes et suffixes utilisés ici sont prévus pour une syntaxe dokuwiki, mais peuvent facilement être remplacés par ce que l'on veut. #!/usr/bin/awk -f BEGIN { # pour la mise en forme tb_prefix = "=== " tb_suffix = " ===" field_prefix = " * " field_suffix = "" key_prefix = " *//" key_suffix = "//" short=0 # version courte sans les commentaires de champ ni les clés } # un peu de nettoyage { gsub("''","'") gsub(" "," ") gsub(" "," ") gsub(" "," ") gsub(" "," ") } /CREATE TABLE/ { curtab=1; # début d'une définition de table match($0, "`.*`"); tb=substr($0, RSTART+1, RLENGTH-2); delete fields delete keys k=0 next } /ENGINE=/ { curtab=0; # fin d'une définition de table c="" out="" i=index($0, "COMMENT")+9; if (i>9) { c=substr($0, i,length($0)-i-1) } print tb_prefix tb" ("c")" tb_suffix for (f in fields) { if (short) { out = out f ", " } else { out = out field_prefix f " (" fields[f] ")" field_suffix "\n" } } if (short) { out = field_prefix out field_suffix } for (k in keys) { if (short==0) { out = out key_prefix keys[k] key_suffix } } print out } { if (curtab>0) { gsub("`","") if (index($0," KEY ")>0) { k++ keys[k]=$0 } else { f=$1; i=index($0, "COMMENT")+9; if (i>9) { fields[f]=substr($0, i,length($0)-i-1) } else { fields[f]="" } } } }