我想使日期命令具有良好的格式,如下所示:
awk -F, '{system("date -d " $1 " +%d/%m/%Y %H:%M")}' file.log
但它不起作用
Try 'date --help' for more information.
date: extra operand ‘%H:%M’
正确的做法是什么,以便 date 命令获得一个正确的参数?为什么当我在“year”和“hour”之间加一个空格时会失败?
提前致谢
我想使日期命令具有良好的格式,如下所示:
awk -F, '{system("date -d " $1 " +%d/%m/%Y %H:%M")}' file.log
但它不起作用
Try 'date --help' for more information.
date: extra operand ‘%H:%M’
正确的做法是什么,以便 date 命令获得一个正确的参数?为什么当我在“year”和“hour”之间加一个空格时会失败?
提前致谢
这与以下内容无关
awk
:该
date
命令接受一个参数,但您给了它两个参数:+%d/%m/%Y
和%H:%M
。 shell 根据空格拆分参数,因此如果您希望将其视为单个参数,则需要将其括起来:因此,为了让你的
awk
命令发挥作用,你可以这样做:或者,也可以退出空格:
在这两者中,我更喜欢引用,因为这也是你应该在 shell 中做的事情,所以养成一个好习惯。不过,这两种方法在这里都应该可以正常工作。
不过你可能不需要这个。由于你使用的是
date -d
,你可能在 GNU 系统上并且有 GNUawk
(gawk
),所以你可以使用它自己的日期函数。请参阅https://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html#Time-Functions。