linux 用管道将字符串转换为GNU日期-如何使它从标准输入中读取?

pbpqsu0x  于 2023-01-04  发布在  Linux
关注(0)|答案(4)|浏览(111)

GNU Date允许您转换日期字符串,如下所示:

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

是否可以通过管道将日期字符串传递给它以进行转换?我已经尝试过-d -,如下所示:

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

但打印的是今天的日期而不是昨天。
是否可以向它传输值,或者它不支持?
谢谢。

v1uwarro

v1uwarro1#

date -f告诉它做与-d相同的事情,除了文件中的每一行...您可以将文件名设置为-以使其从标准输入中读取。

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

s6fujrry2#

是的。

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

k3bvogb13#

可以使用command$(command)替换:

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

8gsdolmq4#

把它扔进去,在bash里:

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

相关问题