回答編集履歴

1

何故(なんとか)の部分が「.*」ではなく「[^\.]」なのかについて追記した。

2020/09/25 05:04

投稿

hidezzz
hidezzz

スコア1248

test CHANGED
@@ -30,6 +30,10 @@
30
30
 
31
31
 
32
32
 
33
+ あと(なんとか)の部分が何故「.*」ではなく「[^.]*」という回りくどい表現になっているかというと、「.」という文字を含めてしまうと「.」が複数ある場合になるべく長い文字列に一致しようとしてしまうためこれを避けるためだと思われます。(このマッチングの仕方を最長一致と言い大抵の正規表現でのデフォルトの挙動となっています。)
34
+
35
+
36
+
33
37
  ```
34
38
 
35
39
  $ cat hoge.txt
@@ -52,4 +56,14 @@
52
56
 
53
57
  ddd.txt
54
58
 
59
+ $ sed 's/..*$//' hoge.txt
60
+
61
+ aaa
62
+
63
+ bbb
64
+
65
+ ccc
66
+
67
+ ddd
68
+
55
69
  ```