gpt4 book ai didi

linux - shell 中的时间格式更改

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:58 25 4
gpt4 key购买 nike

在我的日志文件中,时间格式为 2014-10-10 HH:MM:SS:sss。我正在从文件中读取时间和日期,并将其转换为秒以供进一步处理。但它给出了日期无效的错误。可能是因为时间不是 ..SS.sss 格式。

while read line;
do
d1=$(echo $line | cut -d, -f2);
case "$line" in \s*) continue ;; esac
t1=$(echo $line | cut -d, -f3);
d1t1="${d1} ${t1}";
echo "$d1t1";
ds1=$(date -d"$d1t1" "+%s");
echo "$ds1";
done < error.log

我想用“.”替换“:”解决问题的方法是什么?

最佳答案

为什么不简单地替换日志文件中的毫秒分隔符?

perl -p -i -e 's/:(\d{3}),/.\1/g' error.log

毫秒的“:”分隔符是错误的,并且 date 命令会提示它。带有“.”分隔符日期命令将成功。

更新:
该命令是一个“perl inliner”:它将文本更改全局地(针对每一行)应用于文件(在本例中为“error.log”)。
这里的更改命令是 regular expression替换:s/:(\d{3}),/.\1/g,这意味着:“替换每个冒号,后跟精确的 3 位数字和一个逗号以及一个点和数字”。

关于linux - shell 中的时间格式更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23008999/

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