【问题标题】:How to format output in date and time from Log Files and delete duplicate entry from the output如何格式化日志文件中的日期和时间输出并从输出中删除重复条目
【发布时间】:2016-05-17 08:39:25
【问题描述】:

我从几个不同的日志文件中获得了输出。我正在使用以下命令从日志文件中过滤掉。我需要按日期和时间过滤输出,并且所有输出都应该按日期和时间的排序顺序显示。所有结果都应该合并到一个文件中。我正在搜索具有@ABC 和@DEF 的分析用户,并删除重复的条目。

cat log_file1.log | grep 'Profiling user :' | awk '{print $1,$21}' | cut -c2- | grep '@ABC'

来自 log_file1.log 的输出

    2016-05-16T10:50:09.170+00:00] ABHIJEET.VADGAMA@ABC.com
    2016-05-16T10:50:09.170+00:00] ABHIJEET.VADGAMA@ABC.com
    2016-05-16T10:56:43.944+00:00] AAMIR.SHAIKH@ABC.com
    2016-05-16T10:56:43.944+00:00] AAMIR.SHAIKH@ABC.com
    2016-05-16T11:00:55.961+00:00] SALIL.WAGLE@ABC.com
    2016-05-16T11:00:55.961+00:00] SALIL.WAGLE@ABC.com
    2016-05-16T11:12:23.326+00:00] ABHIJEET.VADGAMA@ABC.com
    2016-05-16T11:12:23.326+00:00] ABHIJEET.VADGAMA@ABC.com
    2016-05-16T11:26:35.311+00:00] VIPIN.SHARMA@ABC.com
    2016-05-16T11:26:35.311+00:00] VIPIN.SHARMA@ABC.com
    2016-05-16T12:08:33.719+00:00] PRITHA.MAZUMDAR@ABC.com
    2016-05-16T12:08:33.719+00:00] PRITHA.MAZUMDAR@ABC.com
    2016-05-16T12:58:40.453+00:00] VIPIN.SHARMA@ABC.com
    2016-05-16T12:58:40.453+00:00] VIPIN.SHARMA@ABC.com
    2016-05-16T13:44:45.657+00:00] PRITHA.MAZUMDAR@ABC.com
    2016-05-16T13:44:45.657+00:00] PRITHA.MAZUMDAR@ABC.com
    2016-05-16T14:42:35.818+00:00] HOLLY.M.JOHNSONSTUHR@ABC.com
    2016-05-16T14:42:35.818+00:00] HOLLY.M.JOHNSONSTUHR@ABC.com
    2016-05-16T14:46:07.353+00:00] CLEAVAN.R.DSOUZA@JPMORGAN.COM

来自 log_file2.log 的输出

2016-05-12T08:16:49.438+00:00] SABEEN.RAZA@ABC.com
2016-05-12T08:16:49.438+00:00] SABEEN.RAZA@ABC.com
2016-05-12T08:32:52.239+00:00] AKPOME.O.OMORHIRHI@ABC.com
2016-05-12T08:32:52.239+00:00] AKPOME.O.OMORHIRHI@ABC.com
2016-05-12T08:52:19.074+00:00] PUNIT.X.KHIRODWALA@JPMORGAN.COM
2016-05-12T08:52:19.074+00:00] PUNIT.X.KHIRODWALA@JPMORGAN.COM
2016-05-12T09:39:48.475+00:00] GRAZYNA.M.JANKOWSKA@JPMORGAN.COM
2016-05-12T09:39:48.475+00:00] GRAZYNA.M.JANKOWSKA@JPMORGAN.COM
2016-05-12T09:58:42.659+00:00] PRIYANKA.V.GAIKWAD@ABC.com
2016-05-12T09:58:42.659+00:00] PRIYANKA.V.GAIKWAD@ABC.com
2016-05-12T11:45:58.756+00:00] ABHIJEET.VADGAMA@ABC.com
2016-05-12T11:45:58.756+00:00] ABHIJEET.VADGAMA@ABC.com
2016-05-12T12:36:02.116+00:00] SHANE.L.BERGENSTEN@ABC.com
2016-05-12T12:36:02.116+00:00] SHANE.L.BERGENSTEN@ABC.com
2016-05-12T13:03:52.589+00:00] VIPIN.SHARMA@ABC.com
2016-05-12T13:03:52.589+00:00] VIPIN.SHARMA@ABC.com

猫日志文件_3.log | grep '分析用户:' | awk '{打印 $1,$21}' |切-c2- | grep '@DEF'

2016-05-12T13:50:40.132+00:00] PRIYANKA.V.GAIKWAD@DEF.com
2016-05-12T13:50:40.132+00:00] PRIYANKA.V.GAIKWAD@DEF.com
2016-05-12T14:06:32.173+00:00] VIPIN.SHARMA@DEF.com
2016-05-12T14:06:32.173+00:00] VIPIN.SHARMA@DEF.com

我需要如下输出:-

  Date       Time               User 
    2016-05-16  8:16:49     SABEEN.RAZA@ABC.com
    2016-05-16  8:16:49     SABEEN.RAZA@ABC.com
    2016-05-16  8:32:52     AKPOME.O.OMORHIRHI@ABC.com
    2016-05-16  8:32:52     AKPOME.O.OMORHIRHI@ABC.com
    2016-05-16  8:52:19     PUNIT.X.KHIRODWALA@JPMORGAN.COM
    2016-05-16  8:52:19     PUNIT.X.KHIRODWALA@JPMORGAN.COM
    2016-05-16  9:39:48     GRAZYNA.M.JANKOWSKA@JPMORGAN.COM
    2016-05-16  9:39:48     GRAZYNA.M.JANKOWSKA@JPMORGAN.COM
    2016-05-16  9:58:42     PRIYANKA.V.GAIKWAD@ABC.com
    2016-05-16  9:58:42     PRIYANKA.V.GAIKWAD@ABC.com
    2016-05-16  11:45:58    ABHIJEET.VADGAMA@ABC.com
    2016-05-16  11:45:58    ABHIJEET.VADGAMA@ABC.com
    2016-05-16  12:36:02    SHANE.L.BERGENSTEN@ABC.com
    2016-05-16  12:36:02    SHANE.L.BERGENSTEN@ABC.com
    2016-05-16  13:03:52    VIPIN.SHARMA@ABC.com
    2016-05-16  13:03:52    VIPIN.SHARMA@ABC.com
    2016-05-16  13:50:40    PRIYANKA.V.GAIKWAD@DEF.com
    2016-05-16  13:50:40    PRIYANKA.V.GAIKWAD@DEF.com
    2016-05-16  14:06:32    VIPIN.SHARMA@DEF.com
    2016-05-16  14:06:32    VIPIN.SHARMA@DEF.com
    2016-05-16  10:50:09    ABHIJEET.VADGAMA@ABC.com
    2016-05-16  10:56:43    AAMIR.SHAIKH@ABC.com
    2016-05-16  10:56:43    AAMIR.SHAIKH@ABC.com
    2016-05-16  10:50:09    ABHIJEET.VADGAMA@ABC.com
    2016-05-16  11:00:55    SALIL.WAGLE@ABC.com
    2016-05-16  11:00:55    SALIL.WAGLE@ABC.com
    2016-05-16  11:12:23    ABHIJEET.VADGAMA@ABC.com

【问题讨论】:

  • 不要在与awk 相同的管道中使用grepcutawk 可以做任何事情grepcut 可以。
  • 提示:在awk手册中查找split
  • @Michael Vehrs ;- 如何使用 awk 命令来做所有事情。至少让我们知道如何在5/12/2016 8:16:49 SABEEN.RAZA@ABC.com 中过滤掉
  • @Ajinkya 嗯,awk 程序的基本构建块是PATTERN { ACTION ... }。所以,你可以说/Profiling user:/ { do whatever },而不是grep
  • 您可以丢弃时区信息吗?都在一个时区吗?

标签: bash shell unix awk grep


【解决方案1】:

这是部分解决方案,使用合理的日期格式

/Profiling user :/ && ($21 ~ "@ABC.com" || $21 ~ "@DEF.com") {
    split($1, time, "[^0-9]");
    print time[4] "/" time[3] "/" time[2] "\t" $21;
}

【讨论】:

  • 我用这个命令得到了下面的结果但是我可以得到时间cat b.log | awk '/Profiling user :/ && ($21 ~ "@ABC" || $21 ~ "@DEF") { split($1, time, "[^0-9]"); print time[4] "-" time[3] "-" time[2] "\t" $21;}'12-05-2016 AB.RAZA@ABC.COM12-05-2016 BEEN.RAZA@ABC.COM
  • 非常感谢我找到了你的方式..cat b.log | awk '/Profiling user :/ && ($21 ~ "@DEF" || $21 ~ "@ABC") { split($1, time, "[^0-9]"); print time[4] "-" time[3] "-" time[2] "\t" time[5]":"time[6]":" time[7] "\t" $21;}'
  • @Ajinkya 不要像这样使用catawk 接受文件名参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多