gpt4 book ai didi

bash - 如何从日志文件的内容中删除时间戳

转载 作者:行者123 更新时间:2023-12-02 17:39:03 25 4
gpt4 key购买 nike

我有一个日志文件,其中日志文件行前面带有以下时间戳格式:

%Y-%m-%d_%H:%M:%S:(最后一个冒号是故意的)

如何使用 sed 删除时间戳(通过 sed 捕获日志文件)?我对 sed 有一些经验,尽管我不确定最好的方法是什么

编辑:这是标准日志行的样子:

2014-04-12_01:55:12:4391465 被禁止。

'12:' 之后的所有内容在时间戳被移除后应该保留

谢谢

最佳答案

您只需要从行首删除固定数量的字符:

sed  's/^.\{20\}//' logfile

如果您的 sed 支持 -r 选项(对于 OSX,使用 -E),那么可以删除反斜杠:

sed -r 's/^.{20}//' logfile

在您的样本行中,上述结果产生:

4391465 banned.

只要日期戳中的字符数是固定的,就不需要sedcut 也可以:

cut -c21- logfile


复杂案例的解决方案

如果字符数不固定,也就是说,如果数字没有像您的那样很好地用零填充,那么更复杂的 sed 命令将按如下顺序排列:

sed 's/^\([0-9]\+[_:-]\)\{6\}//' logfile

以上查找六组数字后跟一个分隔符并删除它们。由于您的时间戳有六个这样的集合(年、月、日、小时、分钟、秒),这就是您想要的。

关于bash - 如何从日志文件的内容中删除时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024370/

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