2012-01-05 12 views
12

Fecha de GNU le permite convertir las cadenas de fecha así:Cadena de tuberías a GNU Fecha de conversión: ¿cómo hacer que se lea desde stdin?

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

¿Es posible canalizar una cadena de fecha a ella para la conversión? He intentado lo obvio -d - así:

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

pero se imprime la fecha de hoy en lugar de ayer.

¿Es posible transferir valores a la tubería o no es compatible?

Gracias.

+1

Por qué la repentina downvote, 2 años después de que esta pregunta? No me importa ser degradado, pero una explicación de por qué y en cuanto a cómo podría mejorarse la pregunta sería muy apreciada ... –

Respuesta

14

Sí.

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

Sí, eso funciona. ¡Gracias! –

+4

use 'xargs -0' para que funcione con una fecha con espacios; – caesarsol

2

Puede utilizar `command` o $(command) substitución:

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

fecha -f dice que haga lo mismo que -d, excepto por cada línea en un archivo ... puede establecer el nombre del archivo a "-" para hacerlo leer desde la entrada estándar.

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

Solo para arrojarlo en, en bash:

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