在awk变量中转换数据格式

在awk变量中转换数据格式,awk,Awk,我已经下载了下面的文件,需要使用awk将其日期格式转换为YYYY-MM-DD。File.TXT的示例内容 1;ABC;SSS;Mar 12, 2020;4;1;0;5;0;0;0;0 2;DEF;AAA;Apr 14, 2020;4;1;0;5;0;0;0;0 期望输出 1;ABC;SSS;2020-03-12;4;1;0;5;0;0;0;0 2;DEF;AAA;2020-04-14;4;1;0;5;0;0;0;0 此脚本应完成以下操作: BEGIN{ FS=";" OFS=

我已经下载了下面的文件,需要使用
awk
将其日期格式转换为
YYYY-MM-DD
File.TXT的示例内容

1;ABC;SSS;Mar 12, 2020;4;1;0;5;0;0;0;0
2;DEF;AAA;Apr 14, 2020;4;1;0;5;0;0;0;0
期望输出

1;ABC;SSS;2020-03-12;4;1;0;5;0;0;0;0
2;DEF;AAA;2020-04-14;4;1;0;5;0;0;0;0

此脚本应完成以下操作:

BEGIN{
    FS=";"
    OFS=";"
    month["Jan"] = "01"
    month["Feb"] = "02"
    month["Mar"] = "03"
    month["Apr"] = "04"
    month["May"] = "05"
    month["Jun"] = "06"
    month["Jul"] = "07"
    month["Aug"] = "08"
    month["Sep"] = "09"
    month["Oct"] = "10"
    month["Nov"] = "11"
    month["Dec"] = "12"
}
{
    split($4,date," ")
    $4 = date[3]"-"gsub(",","",date[2])"-"month[date[1]]
    print
}

使用
awk-f script.awk youinput.txt调用此脚本应能实现以下功能:

BEGIN{
    FS=";"
    OFS=";"
    month["Jan"] = "01"
    month["Feb"] = "02"
    month["Mar"] = "03"
    month["Apr"] = "04"
    month["May"] = "05"
    month["Jun"] = "06"
    month["Jul"] = "07"
    month["Aug"] = "08"
    month["Sep"] = "09"
    month["Oct"] = "10"
    month["Nov"] = "11"
    month["Dec"] = "12"
}
{
    split($4,date," ")
    $4 = date[3]"-"gsub(",","",date[2])"-"month[date[1]]
    print
}

使用
awk-f script.awk youinput.txt

进行呼叫,因此我们鼓励用户以代码的形式展示他们的努力,因此请在您的问题中添加相同的内容,然后让我们知道。这是否回答了您的问题?我使用了这个命令,但它不起作用。。cat File.txt | awk-F';''文件{OFS=“|”}{print$(日期-d$3+%Y%m%d”)}等等,我们鼓励用户以代码的形式展示他们的努力,所以请在您的问题中添加相同的内容,然后让我们知道。这是否回答了您的问题?我使用了这个命令,但它不起作用。。cat File.txt | awk-F';''文件{OFS=“|”}{print$(日期-d$3+%Y%m%d”)}