Utilisez sed ou awk pour corriger le format de la date

Je suis en train de convertir une page HTML contenant un tableau .fichier csv à l'aide d'un bash script.

Jusqu'à présent, j'ai accompli les étapes suivantes:

  1. Convertir au format Unix (avec dos2unix)
  2. Supprimer tous les espaces et les tabulations (avec sed 's/[ \t]//g')
  3. Supprimer toutes les lignes vides (avec sed ':a;N;$!ba;s/\n//g') (cela est nécessaire, parce que le fichier HTML, une ligne vide pour chaque cellule de la table... c'est pas de ma faute)
  4. Supprimer la unnecesary <td> et <tr> balises (avec sed 's/<t.>//g')
  5. Remplacer </td> avec ',' (avec sed 's/<\/td/,/g')
  6. Remplacer </tr> avec fin-de-ligne (\n) caractères (avec sed 's/<\/tr/\n/g')

Bien sûr, je suis en train de mettre tout cela dans un pipeline. Jusqu'à présent, c'est génial de travailler. Il y a une dernière étape, je suis coincé avec: La table a une colonne avec des dates, qui a le format dd/mm/yyyyet je voudrais les convertir en yyyy-mm-dd.

Est-il un (simple) de façon à faire (avec sed ou awk)?

Échantillon de données (après tout sed pipe):

500,2,13/09/2007,30000.00,12,B-1
501,2,15/09/2007,14000.00,8,B-2

Résultat attendu:

500,2,2007-09-13,30000.00,12,B-1
501,2,2007-09-15,14000.00,8,B-2

La raison pour laquelle je besoin de le faire c'est parce que j'ai besoin d'importer ces données pour MySQL. J'ai pu ouvrir le fichier dans Excel et modifier le format à la main, mais je voudrais sauter.

source d'informationauteur Barranka | 2013-08-26