gpt4 book ai didi

regex - 使用 awk 和 mktime 将文件中的日期替换为时间戳

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

我有一个大型 CSV 文件,日期存储为 YYYY-MM-DD。我需要将这些转换为时间戳。为了转换,我假设所有日期的时间都是中午。

我正在尝试使用像这样的 gawk 脚本

gawk '{
print gensub(/([0-9]{4})-([0-9]{2})-([0-9]{2})/, mktime("\\1 \\2 \\3 12 0 0"), "g");
}' file.csv

但由于某些原因,mktime 总是返回 -1 作为值。我知道我可以使用 Python 脚本做得更好,但出于学习目的,我想知道为什么这不起作用。

最佳答案

你很接近,试试这个:

awk '{
print mktime(gensub(/([0-9]{4})-([0-9]{2})-([0-9]{2})/, "\\1 \\2 \\3 12 0 0", "g"));
}'

例子:

kent$  echo "2008-10-31"|awk '{
print mktime(gensub(/([0-9]{4})-([0-9]{2})-([0-9]{2})/, "\\1 \\2 \\3 12 0 0", "g"));
}'
1225450800

关于regex - 使用 awk 和 mktime 将文件中的日期替换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17497218/

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