2012-01-05 8 views
12

GNU Data consente di convertire stringhe di data in questo modo:Stringa di tubi in data GNU per la conversione: come si fa a leggere da stdin?

$ date +"%d %m %Y" -d "yesterday" 
    04 01 2012 

E 'possibile reindirizzare una stringa data per la conversione? Ho provato l'ovvio -d - in questo modo:

$ echo "yesterday" | date +"%d %m %Y" -d - 

ma stampe data odierna, invece di ieri.

E 'possibile convogliare valori ad esso o non lo supporta?

Grazie.

+1

Perché il downvote improvvisa, 2 anni dopo ho fatto questa domanda? Non mi dispiace essere downvoted, ma una spiegazione sul perché e su come la domanda potrebbe essere migliorata sarebbe molto apprezzata ... –

risposta

14

Sì.

echo "yesterday" | xargs date +"%d %m %Y" -d 
+0

Sì, funziona. Grazie! –

+4

usa 'xargs -0' per farlo funzionare con una data con spazi in esso;) – caesarsol

2

È possibile utilizzare `command` o $(command) sostituzione:

date +"%d %m %Y" -d $(echo "yesterday") 
24

data -f dice di fare la stessa cosa come -d tranne che per ogni riga in un file ... è possibile impostare il nome del file su "-" per farlo leggere dallo standard input.

echo "yesterday" | date +"%d %m %Y" -f - 
1

Giusto per buttare in, in bash:

date +"%d %m %Y" -f <(echo yesterday)