ログの件数を1秒毎に集計する

# 活用する場面
- 秒単位で件数を集計したい時
    - 1秒間に何件のメール送信が成功しているのか等

# 前提
- 以下のようなログがあるとする
    - VSCordなどで整形して以下の形式に近づけても良い

```Desktop/log/sample.log
2022-07-01 11:42:47:384 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167926
2022-07-01 11:42:47:478 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167927
2022-07-01 11:42:47:678 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167929
2022-07-01 11:42:47:775 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167930
2022-07-01 11:42:47:878 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167931
2022-07-01 11:42:47:974 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167932
2022-07-01 11:42:48:080 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167933
2022-07-01 11:42:48:170 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167934
2022-07-01 11:42:48:265 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167935
2022-07-01 11:42:48:368 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167936
2022-07-01 11:42:48:459 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167937
2022-07-01 11:42:48:555 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167938
2022-07-01 11:42:48:649 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167939
2022-07-01 11:42:48:744 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167940
2022-07-01 11:42:48:841 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167941
2022-07-01 11:42:49:058 sample-batch BATCH sample  INFO SUCCESS : Gmailの送信に成功しました。Gmailの通知ID: 10167943
```

# 結論
```terminal
$ cat 集計したいファイルのパス | cut -f2 -d' ' | cut -f1,2,3 -d':' | uniq -c
```

```terminal:例
(base) sample@SampleMBP ~ % cd ~/Desktop/log
(base) sample@SampleMBP log % cat /Users/username/Desktop/log/sample.log | cut -f2 -d' ' | cut -f1,2,3 -d':' | uniq -c
   6 11:42:47
   9 11:42:48
   1 11:42:49
```
**🎉🎉ログの件数が1秒毎に集計されている🎉🎉**

:::note
ログの数が多ければ多いほど有効な小技
:::

## 詳細①
```terminal
$ cat 集計したいファイルのパス | cut -f2 -d' '
```
```terminal:terminal
(base) sample@SampleMBP log % cat /Users/username/Desktop/log/sample.log | cut -f2 -d' '
11:42:47:384
11:42:47:478
11:42:47:678
11:42:47:775
11:42:47:878
11:42:47:974
11:42:48:080
11:42:48:170
11:42:48:265
11:42:48:368
11:42:48:459
11:42:48:555
11:42:48:649
11:42:48:744
11:42:48:841
11:42:49:058
```

## 詳細②
```terminal
$ cat 集計したいファイルのパス | cut -f2 -d' ' | cut -f1,2,3 -d':'
```
```terminal:terminal
(base) sample@SampleMBP log % cat /Users/username/Desktop/log/sample.log | cut -f2 -d' ' | cut -f1,2,3 -d':'
11:42:47
11:42:47
11:42:47
11:42:47
11:42:47
11:42:47
11:42:48
11:42:48
11:42:48
11:42:48
11:42:48
11:42:48
11:42:48
11:42:48
11:42:48
11:42:49
```

## 詳細③
```terminal
$ cat 集計したいファイルのパス | cut -f2 -d' ' | cut -f1,2,3 -d':' | uniq -c
```

```terminal:terminal
(base) sample@SampleMBP log % cat /Users/username/Desktop/log/sample.log | cut -f2 -d' ' | cut -f1,2,3 -d':' | uniq -c
   6 11:42:47
   9 11:42:48
   1 11:42:49
```

---
- この記事と組み合わせてファイルに出力するのもあり

https://qiita.com/rexid/items/9880e8c0c6ae6f375d10