gpt4 book ai didi

date - 将 csv 文件的 yyyymmdd 转换为 mm/dd/yyyy

转载 作者:行者123 更新时间:2023-12-01 02:41:10 27 4
gpt4 key购买 nike

请帮忙。我需要一个用于 example.csv 文件的 unix shell 命令,其记录如下:

1231,aaa,bbb,20161001,20161002,hi-ax
1231,aaa,ccc,20161002,20161003,hi-ay
1231,aaa,ddd,20161001,20161007,hi-az

输出应该是:

1231,aaa,bbb,10/01/2016,10/02/2016,hi-ax
1231,aaa,ccc,10/02/2016,10/03/2016,hi-ay
1231,aaa,ddd,10/01/2016,10/07/2016,hi-az

有人可以修复这个命令吗?我已经尝试过,但如果没有分隔符,它将无法工作:

awk -F, '{split($4,a,"");$4=a[2]"/"a[3]"/"a[1]}1' OFS=, sample.csv > output.csv

最佳答案

我宁愿使用这样的函数,它使其更易于维护,例如:

convert-date.awk

function ruin_utc(d) {
year = substr(d, 1, 4)
month = substr(d, 5, 2)
day = substr(d, 7, 2)
return month "/" day "/" year
}

您现在可以像这样使用该函数:

awk -f convert-date.awk -e '{ $4 = ruin_utc($4); $5 = ruin_utc($5) } 1' FS=, OFS=, sample.csv

或更便携:

convert-date2.awk

function ruin_utc(d) {
year = substr(d, 1, 4)
month = substr(d, 5, 2)
day = substr(d, 7, 2)
return month "/" day "/" year
}
{ $4 = ruin_utc($4); $5 = ruin_utc($5) }
1

像这样运行:

awk -f convert-date.awk FS=, OFS=, sample.csv

输出:

1231,aaa,bbb,10/01/2016,10/02/2016,hi-ax
1231,aaa,ccc,10/02/2016,10/03/2016,hi-ay
1231,aaa,ddd,10/01/2016,10/07/2016,hi-az

关于date - 将 csv 文件的 yyyymmdd 转换为 mm/dd/yyyy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39932415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com