Regex 从日志文件中删除日期
我有一个irc日志如下Regex 从日志文件中删除日期,regex,awk,sed,Regex,Awk,Sed,我有一个irc日志如下 04/14/13 21:38<@Hamatti> Lorem ipsum dolor sit amet 04/14/13 21:39<@Hamatti> consectetur adipiscing elit. 04/14/13 21:45<@Hamatti> Duis facilisis convallis lacus sed中的Regex似乎在Regex测试人员中起作用,但这个sed没有做任何事情。我想知道问题出在哪里?欢迎使用b
04/14/13 21:38<@Hamatti> Lorem ipsum dolor sit amet
04/14/13 21:39<@Hamatti> consectetur adipiscing elit.
04/14/13 21:45<@Hamatti> Duis facilisis convallis lacus
sed中的Regex似乎在Regex测试人员中起作用,但这个sed没有做任何事情。我想知道问题出在哪里?欢迎使用bash工具(sed、awk等)提供任何提示。因为只有部分日志有日期,所以我不能使用
awk '{$1 = ""; print}'
因为我需要先进行检查。此sed命令将执行以下操作:
sed -i.bak 's/^[^<]*//' logfile
编辑2:根据您第二次编辑的问题:
sed -i.bak 's#^[0-9]*/[0-9]*/[0-9]* ##' logfile
或者在sed中使用扩展的正则表达式功能,如下所示:
Mac:
sed -E -i.bak 's#^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,2} ##' logfile
sed -r -i.bak 's#^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,2} ##' logfile
Linux:
sed -E -i.bak 's#^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,2} ##' logfile
sed -r -i.bak 's#^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,2} ##' logfile
“切割”命令在此处易于应用:
cut -d " " -f "2-" logfile
这意味着:
如果每一行都被一个空格(分隔符,-d选项)分隔,则从第二行开始取所有项目 谢谢阿努巴瓦,但我意识到我不清楚。我只想要日期,但要保存时间戳。查看我的更新版原件。无论如何谢谢你的帮助。哦,我还得编辑。由于部分数据有日期,而部分数据没有日期,因此最新的sed会从没有日期的数据中删除时间戳。再次感谢您的时间和努力。您可以修改第一次编辑以避免时间戳:
sed的#^../[^]*.
(样本显示第一个日期元素填充到了两个位置,因此我们不需要在那里大惊小怪——当然,除非样本是错误的。)我发现cut
比sed
更容易理解!
sed -r -i.bak 's#^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,2} ##' logfile
cut -d " " -f "2-" logfile