我希望用相同的UNIX时间替换一个JSON数据文件中的所有UNIX时间,然后是人类可读的日期格式。
例如,我想替换" 1234567890123456" (时间以微秒为单位)" 1234567890123456,2009-02-14,00:31:30,sat"。
我试过
Int
但它不起作用。 我是UNIX世界的新手,你能建议我一个解决方案吗?非常感谢你。
cordial性
我附上了我的JSON文件样本:
sed -r 's/([0-9]{16})/\1'"`date -d @ \1`"'/g'
答案 0 :(得分:1)
这是你正在寻找的吗?
$ gawk -F'"' '/timestamp/{sub($(NF-1),"&,"strftime("%Y-%m-%d,%H:%M:%S,%a",int($(NF-1)/1000000)))} 1' file
{
"example": [
{
"query": {
"text": "string 1",
"id": [
{
"timestamp": "1234567890123456,2009-02-13,17:31:30,Fri"
}
]
}
},
{
"query": {
"text": "string 2",
"id": [
{
"timestamp": "1234567891123456,2009-02-13,17:31:31,Fri"
}
]
}
},
{
"query": {
"text": "string 3",
"id": [
{
"timestamp": "1234567893123456,2009-02-13,17:31:33,Fri"
}
]
}
}
]
}
如果没有,请将预期输出发布到您的示例输入中,这样我们就不会玩猜谜游戏。
答案 1 :(得分:0)
您可以使用日期命令,如下所示。
1.获取当前时间 - date +'%s,%Y-%m-%d,%H:%M:%S:,%a'
2.获取特定时间 - date -d @1234567890 +'%s,%Y-%m-%d,%H:%M:%S:,%a