我想添加另一个字段作为最后一列,该字段将从每行的第三字段计算得出。我正在使用以下命令并能够获得所需的输出,但我想传递$ 3,而不是硬编码值“ 1534625333”,但是由于$ 3是awk命令的一部分,因此在系统功能中无法识别。任何人都可以帮助我们如何使$ 3在system()中可见。任何帮助将不胜感激。
abc.txt
18552143176 | 484537 | 1534575204 | 2018-08-17 | 23:53:24 | 0 | 0.025862 || 123 22398615839 | 484537 | 1534623829 | 2018-08-18 | 13:23:49 | 0 | 0.025862 || 123 16315832000 | 484895 | 1534562313 | 2018-08-17 | 23:18:33 | 0 | 0.702858 || 123 43995679934 | 484895 | 1534572260 | 2018-08-18 | 02:04:20 | 21 | 0.702858 || 123 11185713954 | 485598 | 1534614075 | 2018-08-18 | 13:41:15 | 3587 | 0.022928 || 267
awk -F"|" '{printf("%s|%s",$0,system("date -d @1534625333 +%Y%m%d"))}' abc.csv
所需的输出
18552143176 | 484537 | 1534575204 | 2018-08-17 | 23:53:24 | 0 | 0.025862 || 123 | 20180818 22398615839 | 484537 | 1534623829 | 2018-08-18 | 13:23:49 | 0 | 0.025862 || 123 | 20180818 16315832000 | 484895 | 1534562313 | 2018-08-17 | 23:18:33 | 0 | 0.702858 || 123 | 20180817 43995679934 | 484895 | 1534572260 | 2018-08-18 | 02:04:20 | 21 | 0.702858 || 123 | 20180818 11185713954 | 485598 | 1534614075 | 2018-08-18 | 13:41:15 | 3587 | 0.022928 || 267 | 20180818
答案 0 :(得分:0)
请您尝试以下。
awk 'BEGIN{FS=OFS="|"} {$(NF+1)=strftime("%Y%m%d",$3)} 1' OFS="|" Input_file