2014-05-09 5 views
1

Il y a deux format de date utilisé dans le script shell:Comment changer le format de date dans le script shell

Format 1. 01-01-2014 
Format 2. 2014-01-01 

Scénario:
format 1 est un répertoire, tandis que le format 2 est le nom de fichier.
J'essaye d'analyser le format 2 en utilisant un script shell, mais bloqué à un moment donné.
Je gère appel au répertoire ayant le format 1 en définissant toutes les valeurs dans le tableau, maintenant pour chaque valeur de tableau que je suis l'analyse du fichier au format requis 2.
maintenant pour gérer le format de tableau 2.
problème peut être résolu si, Je peux faire la conversion de date comme en PHP. En faisant deux étapes au-dessus, je peux obtenir deux formats de date différents de celui que je définis dans le tableau. donc une telle chose arrive dans la coquille ou non.

+0

est le format 1 américain (mois-jour-année) ou en Europe (jour-mois -année) style? – John1024

Répondre

2

Une solution, en utilisant awk:

date='31-01-2014' 
filetosearch=$(echo "$date" | awk -F- '{print $3"-"$2"-"$1}') 

Et, en utilisant sed:

filetosearch=$(echo "$date" | sed 's/\(..\)-\(..\)-\(....\)/\3-\2-\1/') 

qui précède suppose que date est au format européen (jour-mois-année). Si votre date est au format américain, alors qu'un changement mineur est nécessaire:

date='01-31-2014' 
filetosearch=$(echo "$date" | awk -F- '{print $3"-"$1"-"$2}') 

Et:

filetosearch=$(echo "$date" | sed 's/\(..\)-\(..\)-\(....\)/\3-\1-\2/') 
Questions connexes