2012-01-05 14 views
12

GNU Data umożliwia konwertowanie date sznurki tak:Ciąg rur do GNU Data konwersji - jak sprawić, by był czytany ze standardowego wejścia?

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

Czy to możliwe, aby rury datę ciąg do niego do konwersji? Próbowałem oczywiste -d - jak tak:

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

ale drukuje dzisiejszą datę zamiast wczorajszych dni.

Czy możliwe jest potokowanie wartości lub nie obsługuje tego?

Dzięki.

+1

Dlaczego nagle downvote, 2 lata po poprosiłem to pytanie? Nie mam nic przeciwko temu, że zostałem pochłonięty, ale wyjaśnienie, dlaczego i jak można poprawić to pytanie, byłoby bardzo cenne ... –

Odpowiedz

14

Tak.

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

Tak, to działa. Dzięki! –

+4

użyj 'xargs -0', aby działał z datą zawierającą spacje;) – caesarsol

2

Można użyć `command`$(command) lub podstawienie:

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

data -f mówi mu zrobić to samo, co -d wyjątkiem każdej linii w pliku ... można ustawić nazwę pliku do "-", aby odczytać go ze standardowego wejścia.

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

Wystarczy rzucić go w bash:

date +"%d %m %Y" -f <(echo yesterday) 
Powiązane problemy