行の最初の2文字をファイル名としてNファイルに分割する方法を教えてください。Unix - regexpを使用してN個のファイルに分割して宛先ファイルを指定する
AA.txt
AA23409234TEXT
AA23509234YADA
BA.txt
BA23201202Other Text
BA23202202More Text.
C1.txt
:AA23409234TEXT
BA23201202Other Text
AA23509234YADA
BA23202202More Text.
C1000000000000000000
3つのファイルを生成する必要があります:
例入力ファイルが
C1000000000000000000
私はこの
/^(..)/w \1
に似たsedスクリプトを使用して考えしかし、どのようなことが本当にありませんが代わりにキャプチャグループの「\ 1」という名前のファイルを作成していますよ。
アイデア?
感謝を。 3番目のparamをsubstrに3増やさなければならなかったのですが、ファイル名は1文字しかなかったからです。 –
4 awk行:「N」の数に依存します。巨大な数の場合は、「あまりにも多くのファイルを開く」のようなエラーが発生する可能性があります。 close()を使用すると回避できます。しかし、少数のファイルに対しては、awk行は問題ありません。しかし、良い解決策。 – Kent
awkの「オープンファイルが多すぎます」というエラーが発生しました。もちろん、これは、私の '制作'の問題が3よりもかなり多くの文字を含んでいたためです。 –