gpt4 book ai didi

linux - 使用 bash 将日期时间(12 小时)转换为 CSV 文件中的 mysql 日期时间格式

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:03 24 4
gpt4 key购买 nike

我有一个日期时间格式如下的 CSV 文件:

8/2/2012 1:34:01 PM

我需要找到此类日期的所有出现(可能是正则表达式)并将其(在文件中)转换为 mysql 默认日期时间格式 (2012-08-02 13:34:01)。

我发现

date --date="8/2/2012 1:34:01 PM" +"%F %T"

工作正常,我得到了正确的结果。解决方案是找到所有出现的错误格式日期并将其传递给上面的日期函数。

CSV 文件中的单行如下所示:

"Data 1","Data 2","Data 3","Data 4","100000000100","100000002263","10/31/2012 10:02:03 AM","1/29/1999 1:54:50 PM","11/6/2012 8:47:01 PM","S"

非常感谢!

最佳答案

这适合你吗?

awk -F, -vOFS=','  '{for (i=7;i<=9;i++) {"date --date="$i" +\"%F %T\"" |getline $i;$i="\""$i"\""}}1' file

用那一行测试:

kent$  echo '"Data 1","Data 2","Data 3","Data 4","100000000100","100000002263","10/31/2012 10:02:03 AM","1/29/1999 1:54:50 PM","11/6/2012 8:47:01 PM","S"'|awk -F, -vOFS=','  '{for (i=7;i<=9;i++) {"date --date="$i" +\"%F %T\"" |getline $i;$i="\""$i"\""}}1'
"Data 1","Data 2","Data 3","Data 4","100000000100","100000002263","2012-10-31 10:02:03","1999-01-29 13:54:50","2012-11-06 20:47:01","S"

关于linux - 使用 bash 将日期时间(12 小时)转换为 CSV 文件中的 mysql 日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14336012/

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