回答編集履歴

4

正規表現変更

2018/05/16 10:08

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -19,3 +19,35 @@
19
19
  ```
20
20
 
21
21
  のように最後の一行だけ欲しい(tail -n 1)とするとできますが、これでいいかは不明
22
+
23
+
24
+
25
+ --追記
26
+
27
+ そうではなかった模様。得られた(しかし望ましくなかったという)結果からすると
28
+
29
+
30
+
31
+ ```sh
32
+
33
+ sed -E 's/.*(test_month)\"([0-9]+)\"/\1"\2"/'
34
+
35
+ ```
36
+
37
+ の`[0-9]+`のところを
38
+
39
+ ```sh
40
+
41
+ sed -E 's/.*(test_month)\"(.*)\"/\1"\2"/'
42
+
43
+ ```
44
+
45
+ な感じにしたのではないかと思われる
46
+
47
+ ```sh
48
+
49
+ sed -E 's/.*(test_month)\"(.*?)\"/\1"\2"/'
50
+
51
+ ```
52
+
53
+ とすると"最短マッチ"になると思うがいかがでしょうか

3

最終行だけ欲しいのかもしれない

2018/05/16 10:08

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -5,3 +5,17 @@
5
5
  ```
6
6
 
7
7
  でどうでしょう?
8
+
9
+
10
+
11
+ --追記
12
+
13
+ もし、1つのファイルに他に同じフォーマットの文字列があり、かつその最終行だけが欲しいのだとしたら
14
+
15
+ ```sh
16
+
17
+ grep -a 'test_month' Sample.txt | tail -n 1 | sed -E 's/.*(test_month)\"([0-9]+)\"/\1"\2"/'
18
+
19
+ ```
20
+
21
+ のように最後の一行だけ欲しい(tail -n 1)とするとできますが、これでいいかは不明

2

2桁以上の数値に対応

2018/05/16 09:45

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -1,6 +1,6 @@
1
1
  ```sh
2
2
 
3
- grep -a 'test_month' Sample.txt | sed -E 's/.*(test_month)\"([0-9])\"/\1"\2"/'
3
+ grep -a 'test_month' Sample.txt | sed -E 's/.*(test_month)\"([0-9]+)\"/\1"\2"/'
4
4
 
5
5
  ```
6
6
 

1

出力フォーマット調整

2018/05/16 09:16

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -1,7 +1,7 @@
1
1
  ```sh
2
2
 
3
- grep -a 'test_month' Sample.txt | sed -r 's/.*test_month\"([0-9])\"/\1/'
3
+ grep -a 'test_month' Sample.txt | sed -E 's/.*(test_month)\"([0-9])\"/\1"\2"/'
4
4
 
5
5
  ```
6
6
 
7
- みたいに加工するってことでしょう
7
+ どうでしょう