2015-10-01 14 views
6

パターンに基づいて大きなファイルを分割しようとしています。 これにはawkコマンドを使用しています。特定の数のファイルを作成した後、エラーが発生します。開いているファイルが多すぎます。Linuxシェルスクリプトのawkコマンドが開いているファイルが多すぎます

コマンドは次のとおりです。

awk '/pattern here/{i++}{print > "file"i}' /input file 

誰かがどのようにこれらのファイルを閉じるように教えてもらえますか?私は次のようにしましたが、エラーが発生します。

awk '/pattern here/{i++}{print > "file"i}' /input file | close("file"i) 

ありがとうございます。

+0

あなたは 'close'を実行する必要があります** **のawkにはないパイプに出力に。また、代わりに 'csplit'を調べたいかもしれません。 –

+0

[非常に大きなファイルをパターンに従う小さなファイルに分割する(bash)](http://stackoverflow.com/questions/32228798/divide-very-large-file-into-small-ones-following-pattern-bash ) –

答えて

4

次のファイルに開始する前に、以前のものを閉じる:

awk '/pattern here/{close("file"i); i++}{print > "file"i}' InputFile 
+0

ありがとうございます...次のファイルを起動する前にファイルを閉じる... –

関連する問題