回答編集履歴
22
テキスト修正
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
- `$16`で `326.1ms)` が取れますので、これの数値部分 `326.1`だけを取得するためには、一例として以下のようにすればよいでしょう。( [http://tpcg.io/kQR1k0](http://tpcg.io/kQR1k0) にも上げておきました。)
|
19
|
+
- `$16`で `326.1ms)` が取れますので、これの数値部分 `326.1`だけを取得するためには、一例として以下のようにすればよいでしょう。( [http://tpcg.io/kQR1k0](http://tpcg.io/kQR1k0) にも上げておきました。左上の[Execute]をクリックすると実行結果が右側に表示されます。)
|
20
20
|
|
21
21
|
|
22
22
|
|
21
テキスト修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
こんにちは。
|
2
2
|
|
3
|
-
|
3
|
+
|
4
4
|
|
5
5
|
以下、説明のため、引用元の[ブログ記事](http://blog.tnantoka.com/posts/81) に載っているログの1行目を、以下のように`LOG_LINE`という変数に入れ、ここから`326.1` を取り出す方法を考えます。
|
6
6
|
|
20
テキスト修正
test
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
-
上記を使うとすれば、ご質問
|
39
|
+
上記を使うとすれば、ご質問にある`grep`から始まるコマンドは以下にすればよいです。
|
40
40
|
|
41
41
|
```bash
|
42
42
|
|
19
テキスト修正
test
CHANGED
@@ -2,55 +2,17 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
**1. sed を使う方法**
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
以下、説明のため、引用元の[ブログ記事](http://blog.tnantoka.com/posts/81) に載っているログの1行目を、以下のように`LOG_LINE`という変数に入れ、ここから`326.1` を取り出す方法を考えます。
|
10
6
|
|
11
7
|
```bash
|
12
8
|
|
13
|
-
|
9
|
+
LOG_LINE='I, [2015-07-02T03:47:07.832647 #1439] INFO -- : Completed 200 OK in 374ms (Views: 35.2ms | ActiveRecord: 326.1ms)'
|
14
10
|
|
15
11
|
```
|
16
12
|
|
17
|
-
|
13
|
+
|
18
14
|
|
19
|
-
|
20
|
-
|
21
|
-
以下は、上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトです。(変数`LOG_LINE` に入れているテキストは、ご質問に挙げられている[ブログ記事](http://blog.tnantoka.com/posts/81)に載っていたログの1行目です。)
|
22
|
-
|
23
|
-
```bash
|
24
|
-
|
25
|
-
#!/bin/bash
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
LOG_LINE='I, [2015-07-02T03:47:07.832647 #1439] INFO -- : Completed 200 OK in 374ms (Views: 35.2ms | ActiveRecord: 326.1ms)'
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
echo ${LOG_LINE} | sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"
|
34
|
-
|
35
|
-
```
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
これを実行すると、`326.1`と表示されます。
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
※上記を実行して確認できるように、[http://tpcg.io/rh5oYc](http://tpcg.io/rh5oYc) にも上げておきました。画面左上の[Execute]ボタンをクリックすると、右側の[Result]に結果が表示されます。
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
**
|
15
|
+
**1. awk を使う方法**
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
上記で書いた、サンプル行 `${LOG_LINE}`から、`326.1` を取り出す方法として `awk`を使うとすれば、以下のようになります。
|
54
16
|
|
55
17
|
|
56
18
|
|
@@ -74,7 +36,13 @@
|
|
74
36
|
|
75
37
|
|
76
38
|
|
39
|
+
上記を使うとすれば、ご質問のコマンドは以下にすればよいです。
|
77
40
|
|
41
|
+
```bash
|
42
|
+
|
43
|
+
grep "Completed 200 OK in" production.log | awk '{ print substr($16, 1, index($16, "m")-1) }' | sort -n
|
44
|
+
|
45
|
+
```
|
78
46
|
|
79
47
|
|
80
48
|
|
@@ -93,3 +61,39 @@
|
|
93
61
|
echo ${LOG_LINE} | awk '{ t=$16; sub(/ms)/, "", t); print t }'
|
94
62
|
|
95
63
|
```
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
**2. sed を使う方法**
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
以下のように、`ActiveRecord: `の後に続く数値部分で、テキスト全体を置き換えます。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
```bash
|
78
|
+
|
79
|
+
#!/bin/bash
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
LOG_LINE='I, [2015-07-02T03:47:07.832647 #1439] INFO -- : Completed 200 OK in 374ms (Views: 35.2ms | ActiveRecord: 326.1ms)'
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
echo ${LOG_LINE} | sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"
|
88
|
+
|
89
|
+
```
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
上記を、[http://tpcg.io/rh5oYc](http://tpcg.io/rh5oYc) にも上げておきました。
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
以上、参考になれば幸いです。
|
18
テキスト修正
test
CHANGED
@@ -2,7 +2,11 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
**1. sed を使う方法**
|
6
|
+
|
7
|
+
|
8
|
+
|
5
|
-
`awk`を使っている部分を `sed`を使
|
9
|
+
`awk`を使っている部分を `sed`を使って、以下
|
6
10
|
|
7
11
|
```bash
|
8
12
|
|
@@ -10,11 +14,11 @@
|
|
10
14
|
|
11
15
|
```
|
12
16
|
|
13
|
-
|
17
|
+
のようしてみると、いかがでしょう?
|
14
18
|
|
15
19
|
|
16
20
|
|
17
|
-
以下は、上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトです。変数`LOG_LINE` に入れているテキストは、ご質問に挙げられている[ブログ記事](http://blog.tnantoka.com/posts/81)に載っていたログの1行目です。
|
21
|
+
以下は、上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトです。(変数`LOG_LINE` に入れているテキストは、ご質問に挙げられている[ブログ記事](http://blog.tnantoka.com/posts/81)に載っていたログの1行目です。)
|
18
22
|
|
19
23
|
```bash
|
20
24
|
|
@@ -38,11 +42,11 @@
|
|
38
42
|
|
39
43
|
※上記を実行して確認できるように、[http://tpcg.io/rh5oYc](http://tpcg.io/rh5oYc) にも上げておきました。画面左上の[Execute]ボタンをクリックすると、右側の[Result]に結果が表示されます。
|
40
44
|
|
45
|
+
|
41
46
|
|
47
|
+
|
42
48
|
|
43
|
-
---
|
44
|
-
|
45
|
-
**
|
49
|
+
**2. awk を使う方法**
|
46
50
|
|
47
51
|
|
48
52
|
|
17
テキスト修正
test
CHANGED
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
-
上記で書いた、サンプル
|
49
|
+
上記で書いた、サンプル行 `${LOG_LINE}`から、`326.1` を取り出す方法として `awk`を使うとすれば、以下のようになります。
|
50
50
|
|
51
51
|
|
52
52
|
|
16
テキスト修正
test
CHANGED
@@ -14,9 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
以下は、上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトです。
|
18
|
-
|
19
|
-
|
17
|
+
以下は、上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトです。変数`LOG_LINE` に入れているテキストは、ご質問に挙げられている[ブログ記事](http://blog.tnantoka.com/posts/81)に載っていたログの1行目です。
|
20
18
|
|
21
19
|
```bash
|
22
20
|
|
15
テキスト修正
test
CHANGED
@@ -48,7 +48,11 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
+
上記で書いた、サンプルの1行 `${LOG_LINE}`から、`326.1` を取り出す方法として `awk`を使うとすれば、以下のようになります。
|
52
|
+
|
53
|
+
|
54
|
+
|
51
|
-
- `
|
55
|
+
- `$16`で `326.1ms)` が取れますので、これの数値部分 `326.1`だけを取得するためには、一例として以下のようにすればよいでしょう。( [http://tpcg.io/kQR1k0](http://tpcg.io/kQR1k0) にも上げておきました。)
|
52
56
|
|
53
57
|
|
54
58
|
|
14
テキスト修正
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
`awk`を使うとすれば、`$16`で `326.1ms)` が取れます。これの数値部分 `326.1`だけを取得するためには、一例として以下のようにすればよいでしょう。
|
51
|
+
- `awk`を使うとすれば、`$16`で `326.1ms)` が取れます。これの数値部分 `326.1`だけを取得するためには、一例として以下のようにすればよいでしょう。( [http://tpcg.io/kQR1k0](http://tpcg.io/kQR1k0) にも上げておきました。)
|
52
52
|
|
53
53
|
|
54
54
|
|
@@ -68,13 +68,11 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
上記を試すために、 [http://tpcg.io/kQR1k0](http://tpcg.io/kQR1k0) にも上げておきました。
|
72
71
|
|
73
72
|
|
74
73
|
|
75
|
-
または、以下のように`sub`を使って、`ms)` を削除する(空文字列に置き換える)こともできます。
|
76
74
|
|
77
|
-
|
75
|
+
- または、以下のように`sub`を使って、`ms)` を削除する(空文字列に置き換える)こともできます。([http://tpcg.io/gkHQYJ](http://tpcg.io/gkHQYJ) にも上げておきました。)
|
78
76
|
|
79
77
|
```bash
|
80
78
|
|
@@ -89,5 +87,3 @@
|
|
89
87
|
echo ${LOG_LINE} | awk '{ t=$16; sub(/ms)/, "", t); print t }'
|
90
88
|
|
91
89
|
```
|
92
|
-
|
93
|
-
上記を試すために、 [http://tpcg.io/gkHQYJ](http://tpcg.io/gkHQYJ) にも上げておきました。
|
13
テキスト修正
test
CHANGED
@@ -89,3 +89,5 @@
|
|
89
89
|
echo ${LOG_LINE} | awk '{ t=$16; sub(/ms)/, "", t); print t }'
|
90
90
|
|
91
91
|
```
|
92
|
+
|
93
|
+
上記を試すために、 [http://tpcg.io/gkHQYJ](http://tpcg.io/gkHQYJ) にも上げておきました。
|
12
テキスト修正
test
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
```bash
|
56
56
|
|
57
|
-
#!/
|
57
|
+
#!/bin/bash
|
58
58
|
|
59
59
|
|
60
60
|
|
@@ -69,3 +69,23 @@
|
|
69
69
|
|
70
70
|
|
71
71
|
上記を試すために、 [http://tpcg.io/kQR1k0](http://tpcg.io/kQR1k0) にも上げておきました。
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
または、以下のように`sub`を使って、`ms)` を削除する(空文字列に置き換える)こともできます。
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
```bash
|
80
|
+
|
81
|
+
#!/bin/bash
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
LOG_LINE='I, [2015-07-02T03:47:07.832647 #1439] INFO -- : Completed 200 OK in 374ms (Views: 35.2ms | ActiveRecord: 326.1ms)'
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
echo ${LOG_LINE} | awk '{ t=$16; sub(/ms)/, "", t); print t }'
|
90
|
+
|
91
|
+
```
|
11
テキスト修正
test
CHANGED
@@ -34,11 +34,11 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
これを実行すると、`326.1`と表示され
|
37
|
+
これを実行すると、`326.1`と表示されます。
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
※上記を実行確認できるように、[http://tpcg.io/rh5oYc](http://tpcg.io/rh5oYc) にも上げておきました。画面左上の[Execute]ボタンをクリックすると、右側の[Result]に結果が表示されます。
|
41
|
+
※上記を実行して確認できるように、[http://tpcg.io/rh5oYc](http://tpcg.io/rh5oYc) にも上げておきました。画面左上の[Execute]ボタンをクリックすると、右側の[Result]に結果が表示されます。
|
42
42
|
|
43
43
|
|
44
44
|
|
10
テキスト修正
test
CHANGED
@@ -68,4 +68,4 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
上記
|
71
|
+
上記を試すために、 [http://tpcg.io/kQR1k0](http://tpcg.io/kQR1k0) にも上げておきました。
|
9
テキスト修正
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
以下は、上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトです。
|
18
18
|
|
19
|
-
(以下
|
19
|
+
(※以下で、 変数`LOG_LINE` に入れているテキストは、ご質問に挙げられている[ブログ記事](http://blog.tnantoka.com/posts/81)にあったログの1行目です。)
|
20
20
|
|
21
21
|
```bash
|
22
22
|
|
8
テキスト修正
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
以下は、上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトです。
|
18
18
|
|
19
|
-
|
19
|
+
(以下の `LOG_LINE` に入れているテキストは、ご質問に挙げられている[ブログ記事](http://blog.tnantoka.com/posts/81)にあったログの1行目です。)
|
20
20
|
|
21
21
|
```bash
|
22
22
|
|
7
テキスト修正
test
CHANGED
@@ -42,4 +42,30 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
+
---
|
46
|
+
|
47
|
+
**追記**
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
`awk`を使うとすれば、`$16`で `326.1ms)` が取れます。これの数値部分 `326.1`だけを取得するためには、一例として以下のようにすればよいでしょう。
|
52
|
+
|
53
|
+
|
54
|
+
|
45
|
-
|
55
|
+
```bash
|
56
|
+
|
57
|
+
#!/usr/bin/env bash
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
LOG_LINE='I, [2015-07-02T03:47:07.832647 #1439] INFO -- : Completed 200 OK in 374ms (Views: 35.2ms | ActiveRecord: 326.1ms)'
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
echo ${LOG_LINE} | awk '{ print substr($16, 1, index($16, "m")-1) }'
|
66
|
+
|
67
|
+
```
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
上記のサンプルを、 [http://tpcg.io/kQR1k0](http://tpcg.io/kQR1k0) に上げておきました。
|
6
テキスト修正
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
※上記
|
41
|
+
※上記を実行確認できるように、[http://tpcg.io/rh5oYc](http://tpcg.io/rh5oYc) にも上げておきました。画面左上の[Execute]ボタンをクリックすると、右側の[Result]に結果が表示されます。
|
42
42
|
|
43
43
|
|
44
44
|
|
5
テキスト修正
test
CHANGED
@@ -2,43 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
ご質問に挙げられている、`grep`、`awk`、`sort` をパイプで連結しているコマンド
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
```bash
|
10
|
-
|
11
|
-
grep "Completed 200 OK in" production.log | awk '{ print $11 }' | sort -n
|
12
|
-
|
13
|
-
```
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
の中で、`awk`を使っている以下の部分
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
```bash
|
22
|
-
|
23
|
-
awk
|
5
|
+
`awk`を使っている部分を `sed`を使うように修正して、
|
24
|
-
|
25
|
-
```
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
を、以下
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
```bash
|
34
|
-
|
35
|
-
sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"
|
36
|
-
|
37
|
-
```
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
に入れ替えて
|
42
6
|
|
43
7
|
```bash
|
44
8
|
|
@@ -46,13 +10,11 @@
|
|
46
10
|
|
47
11
|
```
|
48
12
|
|
49
|
-
|
50
|
-
|
51
13
|
としてみると、いかがでしょう?
|
52
14
|
|
53
15
|
|
54
16
|
|
55
|
-
上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプト
|
17
|
+
以下は、上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトです。
|
56
18
|
|
57
19
|
|
58
20
|
|
4
テキスト修正
test
CHANGED
@@ -2,7 +2,19 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
ご質問に挙げられている、`grep`、`awk`、`sort` をパイプで連結しているコマンド
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
```bash
|
10
|
+
|
11
|
+
grep "Completed 200 OK in" production.log | awk '{ print $11 }' | sort -n
|
12
|
+
|
13
|
+
```
|
14
|
+
|
15
|
+
|
16
|
+
|
5
|
-
`awk`を使っている
|
17
|
+
の中で、`awk`を使っている以下の部分
|
6
18
|
|
7
19
|
|
8
20
|
|
@@ -14,7 +26,7 @@
|
|
14
26
|
|
15
27
|
|
16
28
|
|
17
|
-
を、以下
|
29
|
+
を、以下
|
18
30
|
|
19
31
|
|
20
32
|
|
@@ -26,7 +38,21 @@
|
|
26
38
|
|
27
39
|
|
28
40
|
|
41
|
+
に入れ替えて
|
42
|
+
|
43
|
+
```bash
|
44
|
+
|
45
|
+
grep "Completed 200 OK in" production.log | sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/" | sort -n
|
46
|
+
|
47
|
+
```
|
48
|
+
|
49
|
+
|
50
|
+
|
29
|
-
|
51
|
+
としてみると、いかがでしょう?
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
上記の `sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"`をテストする簡単なスクリプトが以下です。
|
30
56
|
|
31
57
|
|
32
58
|
|
3
テキスト修正
test
CHANGED
@@ -20,13 +20,13 @@
|
|
20
20
|
|
21
21
|
```bash
|
22
22
|
|
23
|
-
sed -E "s/^.*ActiveRecord: ([0-9.]+)
|
23
|
+
sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"
|
24
24
|
|
25
25
|
```
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
-
|
29
|
+
上記をテストする簡単なスクリプトが以下です。
|
30
30
|
|
31
31
|
|
32
32
|
|
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
-
echo ${LOG_LINE} | sed -E "s/^.*ActiveRecord: ([0-9.]+)
|
43
|
+
echo ${LOG_LINE} | sed -E "s/^.*ActiveRecord: ([0-9.]+).*$/\1/"
|
44
44
|
|
45
45
|
```
|
46
46
|
|
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
|
52
52
|
|
53
|
-
※上記と同じものを、[http://tpcg.io/
|
53
|
+
※上記と同じものを、[http://tpcg.io/rh5oYc](http://tpcg.io/rh5oYc) にも上げておきました。画面左上の[Execute]ボタンをクリックすると、右側の[Result]に結果が表示されます。
|
54
54
|
|
55
55
|
|
56
56
|
|
2
テキスト修正
test
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
```bash
|
34
34
|
|
35
|
-
#!/
|
35
|
+
#!/bin/bash
|
36
36
|
|
37
37
|
|
38
38
|
|
1
テキスト修正
test
CHANGED
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
|
52
52
|
|
53
|
-
※上記と同じものを、[http://tpcg.io/ztu8QH](http://tpcg.io/ztu8QH) にも上げておきました。[Execute]ボタンをクリックすると
|
53
|
+
※上記と同じものを、[http://tpcg.io/ztu8QH](http://tpcg.io/ztu8QH) にも上げておきました。画面左上の[Execute]ボタンをクリックすると、右側の[Result]に結果が表示されます。
|
54
54
|
|
55
55
|
|
56
56
|
|