質問編集履歴

2

文法修正、試行追記

2020/04/05 09:40

投稿

yrk
yrk

スコア6

test CHANGED
@@ -1 +1 @@
1
- 複数ファイルに対して指定文字列が含まれる次の行以降を削除したい
1
+ 複数ファイルに対して指定文字列が最初にマッチした行2後から最終行までを削除したい
test CHANGED
@@ -1,4 +1,6 @@
1
+ (2020/04/05 18:30旧タイトル[複数ファイルに対して指定文字列が含まれる次の行以降を削除したい]から修正)
2
+
1
- ### 複数ファイルに対して指定文字列が含まれる次の行以降を削除したい
3
+ ### 複数ファイルに対して指定文字列が最初にマッチした行2後から最終行までを削除したい
2
4
 
3
5
 
4
6
 
@@ -48,7 +50,7 @@
48
50
 
49
51
 
50
52
 
51
- このような日付 都市が一行おきにあるsample.txtの最初に1231がヒットした次の行以降を削除したく、
53
+ このような日付 都市が一行おきにあるsample.txtの最初に1231が~~(18:30修正)ヒットした次の行以降~~マッチした行の2行後から最終行までを削除したく、
52
54
 
53
55
  この例ですと20200111 Matsuyama以降を削除したいです。
54
56
 
@@ -100,6 +102,16 @@
100
102
 
101
103
 
102
104
 
105
+ (18:30追記)
106
+
107
+ 5, find . -name "*.txt" | xargs sed -i "/1231/q"
108
+
109
+ 20200111 Matsuyama が残らない、複数ファイルに適応時に1ファイルしか変更が反映されない。
110
+
111
+
112
+
113
+
114
+
103
115
  ### 環境
104
116
 
105
117
  Ubuntu 16.04 LTSで実行しています。

1

書式条件の追記、試行の追記

2020/04/05 09:40

投稿

yrk
yrk

スコア6

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  この例ですと20200111 Matsuyama以降を削除したいです。
54
54
 
55
-
55
+ (15:49追記)1231の次にどの日付が来るかはランダムです。
56
56
 
57
57
 
58
58
 
@@ -92,6 +92,14 @@
92
92
 
93
93
 
94
94
 
95
+ (15:49追記)
96
+
97
+ 4, cat test.txt | sed -e "/1231/,$ d" -e "/1231/,+1p"
98
+
99
+ 削除が先に行われるのでマッチする行+1行を出力が反映されなかった。
100
+
101
+
102
+
95
103
  ### 環境
96
104
 
97
105
  Ubuntu 16.04 LTSで実行しています。