Я думаю, что вы приближаетесь к этому ужасным способом - цепочки нескольких графов и awks почти наверняка излишни.
Я собираюсь взять немного догадку, что вы смотрите на журнал в httpd
доступа глядя, как это: (от: http://www.monitorware.com/en/logsamples/apache.php)
64.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846
64.242.88.10 - - [07/Mar/2004:16:06:51 -0800] "GET /twiki/bin/rdiff/TWiki/NewUserTemplate?rev1=1.3&rev2=1.2 HTTP/1.1" 200 4523
64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291
64.242.88.10 - - [07/Mar/2004:16:11:58 -0800] "GET /twiki/bin/view/TWiki/WikiSyntax HTTP/1.1" 200 7352
64.242.88.10 - - [07/Mar/2004:16:20:55 -0800] "GET /twiki/bin/view/Main/DCCAndPostFix HTTP/1.1" 200 5253
64.242.88.10 - - [07/Mar/2004:16:23:12 -0800] "GET /twiki/bin/oops/TWiki/AppendixFileSystem?template=oopsmore¶m1=1.12¶m2=1.12 HTTP/1.1" 200 11382
64.242.88.10 - - [07/Mar/2004:16:24:16 -0800] "GET /twiki/bin/view/Main/PeterThoeny HTTP/1.1" 200 4924
64.242.88.10 - - [07/Mar/2004:16:29:16 -0800] "GET /twiki/bin/edit/Main/Header_checks?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12851
64.242.88.10 - - [07/Mar/2004:16:30:29 -0800] "GET /twiki/bin/attach/Main/OfficeLocations HTTP/1.1" 401 12851
Чтобы получить то, что вы хотите из него:
#!/usr/bin/env perl
use strict;
use warnings;
while (<>) {
if (m/64.242.88.10/
and m/TWiki/) {
my ($date, $tz) = m/\[(\S+):\d{2}:\d{2} ([-+\d]+)\]/;
print $date,"\n";
}
}
который печатает:
07/Mar/2004:16
07/Mar/2004:16
07/Mar/2004:16
Это может быть один вкладыш-маньяков таким образом:
perl -lne 'if (m/64.242.88.10/ and m/TWiki/ and m/\[(\S+):\d{2}:\d{2} /) { print $1 }' access.log
Или, как было отмечено glenn jackman:
perl -lne '/64.242.88.10/ && /TWiki/ && /\[(\S+):\d{2}:\d{2}/&& print $1' access.log
Можете ли вы дать образец файла журнала? Должно быть, это 'awk'? Несколько цепочек 'awk' кажется неправильным. – Sobrique
Похоже, вы должны научиться поддерживать регулярные выражения. 2 раза grep и 5 раз (!!) awk в * одном * трубе это слишком тяжело! – hek2mgl