回答編集履歴

1

追記

2022/01/02 15:38

投稿

otn
otn

スコア84798

test CHANGED
@@ -23,3 +23,31 @@
23
23
 
24
24
 
25
25
  `\1`はその前の括弧内と同じ文字列。`\K`は後読みという概念で、マッチした後で、そこから前の部分はマッチした文字列から(つまり`-o`での表示対象から)除きます。
26
+
27
+
28
+
29
+ 実行結果:
30
+
31
+ ```sh
32
+
33
+ cat <<EOF |
34
+
35
+ 1,/data/aa.ext,641,/data/aa.ext,
36
+
37
+ 2,/data/bbb.ex,830,/data/bbb.ex,
38
+
39
+ 2,/data/cc.ex1,830,/data/cc.ex1
40
+
41
+ EOF
42
+
43
+ grep -P -o '(/[^,]*).*\K\1'
44
+
45
+ ===>
46
+
47
+ /data/aa.ext
48
+
49
+ /data/bbb.ex
50
+
51
+ /data/cc.ex1
52
+
53
+ ```