シェルスクリプトを使用して行テキストに基づいて.txtファイルを3つのファイルに分割する

シェルスクリプトを使用して行テキストに基づいて.txtファイルを3つのファイルに分割する

ツール出力から.txtファイルをインポートする必要があります。これを3つに分割したいと思います。

ファイルのテキストの例:

First line
Second line
23456
45677
45678

Third line
90909
90678

Last line
Z567Z
6787T

予想出力:

->ファイル1.txt

23456
45677
45678

->ファイル2.txt

90909
90678

- >ファイル3.txt

Z567Z
5677T

デフォルトでは、ファイルには使用したい5桁の数字/英数字の値があり、その間のテキストはファイルを複数のファイルに分割するための識別子として使用されます。

awkこれを行うには、orコマンドを使用しようとしますsed

ベストアンサー1

これが必要なものではない場合:

$ awk '
    /^[[:alnum:]]{5}$/ {
        if ( !inBlock++ ) {
            close(out)
            out = "file" (++cnt) ".txt"
        }
        print > out
        next
    }
    { inBlock = 0 }
' file

$ head file?.txt
==> file1.txt <==
23456
45677
45678

==> file2.txt <==
90909
90678

==> file3.txt <==
Z567Z
6787T

次に、質問を編集して、より明確な要件とより代表的な入力/出力の例を提供します。

おすすめ記事