目的の文字列に基づいてファイルを分割する

目的の文字列に基づいてファイルを分割する

次の内容を含むテストファイルがあります。

CREATE TABLE XYZ (
ABC INT,
CDE CHAR(10),
.
.
.
);
Similarly, REPLACE VIEW XYZ (
ABC,
CDE,
EFG
);
CREATE TABLE XYZ_1 (
ABC INT,
CDE CHAR(10),
.
.
.
);
Similarly, REPLACE VIEW XYZ (
ABC,
CDE,
EFG
);

これで、このテスト単一のファイルを2つのファイルに分割したいと思います。あるファイルにはill asCREATEステートメントが含まれ、他のファイルにはtilステートメントが含まれています。;file1file2REPLACE;

これを分割する方法を教えてください。

ベストアンサー1

方法は次のとおりですsed

sed -n 'H                      # append every line to hold buffer
/CREATE\|REPLACE/h             # if CREATE or REPLACE, overwrite hold buffer
/;/{                           # if line matches ; then
x                              # exchange hold space w. pattern space
/CREATE/w file1                # if pattern space matches CREATE, write to file1
/REPLACE/w file2               # if it matches REPLACE, write it to file2
}
' infile

おすすめ記事