我有一个这样的文件:

A345435;3/12/2016
D564565;12/29/2017
...

我正在尝试将文件转到以下位置:
A345435;20160312
D564565;20171229
...

我试过AWK,但第一部分没问题,日期总是一样的。
awk 'BEGIN {FS=OFS=";"} {"date -d"$2" +%Y%m%d" | getline newDate; close(newDate); print $1,newDate}'

A345435;20160312
D564565;20160312
...

实际上不需要使用AWK,但我要避免的是循环文件,因为它有大约20k行。

最佳答案

你只需要:

$ awk -F'[;/]' '{printf "%s;%s%02d%02d\n",$1,$4,$2,$3}' file
A345435;20160312
D564565;20171229

09-08 01:21