Convert all Unix Time in a file to human date
我想将JSON数据文件中的所有Unix时间替换为相同的Unix时间,后跟一个可读的日期格式。
例如,我想将"1234567890123456"(以微秒为单位)替换为"12345678901234562009-02-14,00:31:30,sat"。
我试过了
1 | sed -r 's/([0-9]{16})/\1'"`date -d @ \1`"'/g' |
但它不起作用。我是Unix领域的新手,你能给我推荐一个解决方案吗?非常感谢。
友好
我附上了一份JSON文件的样本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | { "example": [ { "query": { "text":"string 1", "id": [ { "timestamp":"1234567890123456" } ] } }, { "query": { "text":"string 2", "id": [ { "timestamp":"1234567891123456" } ] } }, { "query": { "text":"string 3", "id": [ { "timestamp":"1234567893123456" } ] } } ] } |
号
这就是你要找的吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | $ 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.获取当前时间-
2.获取特定时间-