gpt4 book ai didi

linux - awk + ​​过滤日志文件

转载 作者:IT王子 更新时间:2023-10-29 01:06:17 28 4
gpt4 key购买 nike

我使用了下面的 awk 命令来过滤重复的行

示例:

cat LogFile | awk '!seen[$0]++'

问题是在某些情况下我们需要过滤重复的行,尽管有些字段不同并且它们并不那么重要

例如

日志文件:

 [INFO],[02/Jun/2014-19:30:45],EXE,ds1a,INHT VERION , 1.4.4.3-08
[INFO],[02/Jun/2014-19:31:25],EXE,ds1a,INHT VERION , 1.4.4.3-08
[INFO],[02/Jun/2014-19:32:40],EXE,ds1a,INHT VERION , 1.4.4.3-08

请查看此文件 - LogFile

我需要删除第三个分隔符“,”中的重复行,直到行尾,

不管第三个分隔符之前是什么

所以最后我应该得到这个过滤后的文件:(应该总是得到列表中的第一个文件)

    [INFO],[02/Jun/2014-19:30:45],EXE,ds1a,INHT VERION , 1.4.4.3-08

请帮我完成任务

如何从第三个分隔符","过滤LofFile,忽略字段:[INFO],[......],EXE ,

备注-用perl一行也可以植入

最佳答案

对于 gensub() 使用 GNU awk:

$ awk '!seen[gensub(/([^,]*,){3}/,"","")]++' file
[INFO],[02/Jun/2014-19:30:45],EXE,ds1a,INHT VERION , 1.4.4.3-08

使用任何支持 RE 间隔的 awk(大多数现代 awk):

$ awk '{key=$0; sub(/([^,]*,){3}/,"",key)} !seen[key]++' file
[INFO],[02/Jun/2014-19:30:45],EXE,ds1a,INHT VERION , 1.4.4.3-08

关于linux - awk + ​​过滤日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24000436/

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