我有一个 awk 问题,我似乎无法弄清楚。我试图解析来自 SAR 的数据,发现某些系统使用不同的语言环境,我得到不同的输出。长期的解决方案是将输出数据的所有系统上的语言环境更改为相同的东西,但我现在必须解析旧数据,这目前不是一个选项。这是我得到的两种数据:
24 小时输出:
21:10:01 all 8.43 0.00 1.81 2.00 0.00 87.76
21:20:01 all 7.99 0.00 1.74 0.82 0.00 89.44
21:30:01 all 8.35 0.00 1.76 0.94 0.00 88.95
12 小时输出:
09:10:01 PM all 8.43 0.00 1.81 2.00 0.00 87.76
09:20:01 PM all 7.99 0.00 1.74 0.82 0.00 89.44
09:30:01 PM all 8.35 0.00 1.76 0.94 0.00 88.95
我需要一份awk
声明,从早上 7 点到晚上 7 点获取所有 SAR 数据的项目。我最初有一些工作,但一旦我发现这个问题,它就会中断所有 24 小时输出。我试图让awk
声明工作,但以下不起作用,我不知道如何使它工作:
awk '{ if ($2 == "AM" || $2 == "PM" && /07:00/,/07:00/) print $1" "$2; else '/07:00/,/19:00 print $1}' SAR_OUTPUT_FILE.txt
基本上,我要输出的是,如果它是 24 小时格式,则搜索 07:00-19:00 并仅返回输出的第一列(因为没有“AM/PM”列。如果它创建了“AM/PM”,我会透露 12 小时格式,并希望从 07:00-07:00 获取所有内容并返回第一列和第二列(时间 + “AM/PM”)。
有谁可以帮我离开这里吗?