回答編集履歴

1

追記

2020/06/17 15:53

投稿

otn
otn

スコア85901

test CHANGED
@@ -5,3 +5,37 @@
5
5
 
6
6
 
7
7
  日付と時刻をそれぞれ認識した後で、15時以降だと翌日にカウントすれば良いです。
8
+
9
+
10
+
11
+ #追記
12
+
13
+ なんと、日ごとにファイルが分かれているんですね。
14
+
15
+ 前日ファイルの15時以降と、当日ファイルの15時以前を処理するようにします。
16
+
17
+ ```sh
18
+
19
+ 前略
20
+
21
+ for i in 01 02 中略 30 31
22
+
23
+ do
24
+
25
+ YESTERDAY=`date +%Y%m%d -d "$YY-$MM-$i - 1day"`
26
+
27
+ ( zcat $YESTERDAY*.log.gz | awk '$3 >= 15';
28
+
29
+ zcat $YY$MM$i*.log.gz | awk '$3 < 15' ) | awk -F \" '{print $8}' |
30
+
31
+ 後略
32
+
33
+ ```
34
+
35
+
36
+
37
+ なお、`for i in 01 02 ・・・ 31`はBashなら`for i in {01..31}`と書けます。
38
+
39
+ また、小の月なら31日分が存在しないのでエラーで止まりますよね?不都合ないのなら良いですが。
40
+
41
+ 他にも改善できるところはあります。