J’ai un fichier mysqldump que je voudrais restaurer, mais pas de la même manière qu’il est construit. Il contient une colonne à incrémentation automatique que je souhaite supprimer.
Le fichier de vidage ressemble à ceci: (la première colonne est l’auto-inc)
INSERT INTO `my_table` VALUES (833899644,461796098,'Wed',21,12),(833899645,423455772,'Sun',3,3) ...
Je pensais donc que je devrais changer cela pour: (supprimer le premier numéro)
INSERT INTO `my_table` VALUES (461796098,'Wed',21,12),(423455772,'Sun',3,3)
Ce dump est assez gros (20 Go) mais je suppose que sed peut gérer cela assez facilement, mais je ne sais pas trop comment. J’apprécierais une solution pour sed / autre option.
Pour restr simple, supprimez tout, des parenthèses gauche à la première virgule.
Si vous voulez que le changement se produise sur place, utilisez:
sed -i -r "s/\([^,]+,/\(/g" file
Si vous voulez l’enregistrer dans un autre fichier:
sed -r "s/\([^,]+,/\(/g" file > outfile
Vous pouvez essayer la commande sed ci-dessous pour supprimer le premier nombre avec la virgule suivante,
sed 's/^\([^0-9]*\)[0-9]\+,\(.*\)$/\1\2/g' file