【发布时间】:2016-08-31 04:22:10
【问题描述】:
我有一个文件,如下所示
17:59:49.987 - JobID 864563: Found 7 clips from SeqID 862753
17:59:49.987 - Processing Job 864562
17:59:50.003 - JobID 864561: Location 14695 applied clip data successfully. Updating OCAMT_GM_Sent
17:59:50.003 - Processing Job 864563
17:59:50.003 - JobID 864564
17:59:50.018 - JobID 864565
17:59:50.034 - Processing Job 864565
17:59:50.034 - JobID 864566
17:59:50.034 - JobID 864562
17:59:50.034 - JobID 864563
17:59:50.034 - Processing Job 864566
17:59:50.049 - JobID 864567
17:59:50.049 - JobID 864564
17:59:50.049 - Trying to send JobID 864566 to location 14623 at http://172.28.48.11/yb/ClipData.php. Retry count 0
17:59:50.049 - Processing Job 864567
我想捕获某些字符串,使其输出文件如下所示;
864563 17:59:49.987
864562 17:59:49.987
864561 17:59:50.003
864563 17:59:50.003
由于作业 id 长度是可变的,我正在考虑使用正则表达式 \d+ 并使用单词 Job 作为字段分隔符将行分成两半,但我不确定是否可以组合以下内容;
awk -F'Job*' '{print $1}'|awk '{print $1}'
awk -F'Job*' '{print $2}'
【问题讨论】:
-
edit 您的问题,因此显示的预期输出是您从显示的示例输入中获得的输出,而不是来自某些不同输入集的输出。我们需要一些可以测试潜在解决方案的东西,看看它是否产生预期的输出。
-
@Ed 我认为我提到的示例输出文件具有可以从输入中删除的值。我在忽略输入文件中的其他字符串时遇到问题
-
@Dren,您希望输出的依据是什么。Job 和 JobID 或仅其中一个。输入的每一行都包含该关键字吗?
-
@Dren 我不知道该评论是什么意思,但请查看您提供的输入和输出文件。输出文件中的任何值都不会出现在输入文件中。我们是否应该编写一个仅组成数字并打印它们的脚本?您发布的预期输出准确地是您应该从您发布的输入中获得的输出,这一点非常重要,否则该示例在阐明您的要求方面几乎没有用处,而且我们没有什么可以测试潜在的解决方案,因为我们不知道在发布的输入上运行时输出的内容是否是您想要的。
-
@Dren 没问题,我们快到了。 edit 现在再次解释您如何选择要打印的时间戳或作业 ID,因为它们不会全部出现在您的预期输出中。