Linuxシェルでファイルを分割する

Linuxシェルでファイルを分割する

入力するfile.txt

Start of test case:test1
a
b
c
Date is feb 12
Start of test case:test2
m
n
o
Date is feb 13
Start of test case:test3
x
y
z
Date is feb 14

必須出力ファイル

test1.txt:

Start of test case:test1
a
b
c
Date is feb 12

test2.txt:

Start of test case:test2
m
n
o
Date is feb 13

test3.txt:

Start of test case:test3
x
y
z
Date is feb 14

ベストアンサー1

使用split:

$ split -l 5 file.txt test

これにより、各ファイルの連続5行を含む3つのファイルがtesta作成されます。testbtestcfile.txt

awkまたは、新しいテストケースが見つかるたびに新しいファイルを作成するソリューション:

$ awk '/^Start of test case:/ { c++ } { print >sprintf("test%d.txt", c) }' file.txt

おすすめ記事