次のようなテキスト ファイルがあります。
valcred: requestValCred [up]
certificate pki_001 [up]
certificate pki_002 [up]
certificate pki_003 [up]
certificate pki_004 [up]
certificate pki_005 [up]
valcred: internalValCred [up]
certificate pki_021 [up]
certificate pki_012 [up]
certificate pki_103 [up]
certificate pki_404 [up]
certificate pki_555 [up]
「valcred」が表示されるたびに、これを新しいテキスト ファイルに分割したいと考えています。次に、すべての証明書を上記の valcred を含むファイルに配置します。以下は、1 つのファイルの内容です。これらのファイルは約 100 個あり、それぞれエントリ数が異なります。エラーが発生すると、約 20 個のファイルが取得されます。
valcred: internalValCred [up]
certificate pki_021 [up]
certificate pki_012 [up]
certificate pki_103 [up]
certificate pki_404 [up]
certificate pki_555 [up]
このコマンドを使用しています:
nawk '/valcred/{x="F"++i;}{print > x;}' input_file.txt
しかし、これは間違っているところです。このエラーが発生します:
bash-2.03$ nawk '/valcred/{x="F"++i;}{print > x;}' input_files.txt
nawk: F21 makes too many open files
input record number 1743, file input_files.txt
source line number 1
printステートメントを閉じるだけでよいと思いました。私にとっては何もうまくいきませんでした。誰かがこれを機能させるためにこれに近い声明を追加するのを手伝ってもらえますか? または代替ソリューション?