Конвейерная строка в GNU Date для преобразования - как сделать так, чтобы она читалась из stdin? - PullRequest
15 голосов
/ 05 января 2012

GNU Date позволяет конвертировать строки даты следующим образом:

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

Можно ли передать ему строку даты для конвертации? Я пробовал очевидное -d - так:

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

но печатает сегодняшнюю дату вместо вчерашних.

Возможно ли передать ему значения или нет?

Спасибо.

Ответы [ 4 ]

29 голосов
/ 10 февраля 2013

date -f говорит, что он делает то же самое, что и -d, за исключением каждой строки в файле ... вы можете установить имя файла на -, чтобы оно читалось из стандартного ввода.

echo "yesterday" | date +"%d %m %Y" -f -
18 голосов
/ 05 января 2012

Да.

 echo "yesterday" | xargs date +"%d %m %Y" -d
2 голосов
/ 05 января 2012

Вы можете использовать `command` или $(command) замену:

date +"%d %m %Y" -d $(echo "yesterday")
1 голос
/ 25 июля 2015

Просто, чтобы бросить это, в bash:

date +"%d %m %Y" -f <(echo yesterday)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...