ファイルから複数のセクション/行を分割します。

ファイルから複数のセクション/行を分割します。

次のサンプルテキストを含むファイルがあります。

THIS(
is first
Line);
THAT(
is second line);
THIS(
is third
line);
THAT(
is 
fourth
line);

ファイルを見ると、各セクションは「THIS」または「THAT」で始まり、各テキストセクションはセミコロン()で終わります;。私は「THIS」と「THAT」を検索し、すべての「THIS」部分を1つのファイルにコピーし、すべてのfirst_file「THAT」部分を別のファイルにコピーするUnixコマンド/スクリプトが必要ですsecond_file

例: 最初のファイルには以下を含める必要があります。

THIS(
is first
Line);
THIS(
is third
line);

2番目のファイルには、次のものを含める必要があります。

THAT(
is second line);
THAT(
is 
fourth
line);

ベストアンサー1

与えられた

$ cat thisthat 
THIS(
is first
Line);
THAT(
is second line);
THIS(
is third
line);
THAT(
is 
fourth
line);

それから

awk -vRS=';\n' 'BEGIN{ORS=RS} /^THIS/ {print > "these"} /^THAT/ {print > "those"}' thisthat

結果

$ head these those 
==> these <==
THIS(
is first
Line);
THIS(
is third
line);

==> those <==
THAT(
is second line);
THAT(
is 
fourth
line);

おすすめ記事