管道字符串到GNU日期转换 - 如何从stdin读取?

Bri*_*ett 15 linux stdin date pipe

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

$ date +"%d %m %Y" -d "yesterday"
  04 01 2012
Run Code Online (Sandbox Code Playgroud)

是否可以将日期字符串传递给它进行转换?我已经尝试了这样明显的-d -事情:

$ echo "yesterday" | date +"%d %m %Y" -d -
Run Code Online (Sandbox Code Playgroud)

但它打印今天的日期而不是昨天.

是否可以将值传递给它或不支持它?

谢谢.

小智 32

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

echo "yesterday" | date +"%d %m %Y" -f -
Run Code Online (Sandbox Code Playgroud)


Let*_*_Be 19

是.

 echo "yesterday" | xargs date +"%d %m %Y" -d
Run Code Online (Sandbox Code Playgroud)

  • 使用`xargs -0`使其适用于包含空格的日期;) (8认同)