2017-07-03 43 views
-3
"original_timestamp" : 1497691757895 

我有这样的文字,我想用awk命令和original_timestamp为日期格式的更新值,我使用unix awk命令中的模式?

awk -F, '{x=$1;sub(/:.*/,strftime(":%Y-%m-%d %H:%M:%S",$1),x);$1=x;}1' 

,但没有得到期望的输出

+1

你为什么使用awk? – anubhava

+1

输入文件是json文件吗? – hek2mgl

+1

添加更多上下文行和期望的输出 – RomanPerekhrest

回答

0

我想是这样的:

echo "original_timestamp : 1497691757895" | awk -v foo=$(date +%m/%d/%Y:%H:%M:%S) '{ sub(/:.*/,foo) }1' 

输出:

original_timestamp 07/03/2017:17:32:23 

这是你在哪里寻找?格式与您要求的格式不同,但我想您可以弄清楚。重点是你可以使用-v来声明一个包含date命令内容的变量。这个变量可以在子命令中使用。

+0

对不起,您是对的。起初我认为strftime是php独占的。 – JFS31