Converting a file of dates into unix time with awk
我有一个包含日期和lat long的文件,我想将UTC中的日期转换为Unix时间。我决定在awk脚本中使用unix日期函数来完成这项工作。我尝试过:
1 | awk 'BEGIN {t=$3; c="date -j -f %Y%j%H%M%S"t" +%s"; c|getline; close( c ); print $1, $2, c; }' test.txt |
其中,
当我运行脚本时,我得到错误:
1 2 | usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format] |
号
所以我认为我没有正确地定义"T"。非常感谢您的帮助!
另一方面,我尝试过mktime和其他awk时间函数,但它们对我不起作用,我相信,因为我没有gawk。
您没有安装
在打开任何文件之前执行
您不想打印命令,c,您想打印执行命令的结果,正如
你可能想要这样的东西:
1 2 3 4 5 6 7 | awk '{ cmd ="date -j -f %Y%j%H%M%S" $3" +%s" if ( (cmd | getline time) > 0 ) { print $1, $2, time } close(cmd) }' test.txt |
但如果没有,请发布一些示例输入和预期输出,这样我们可以帮助您。