基本的なプロセスに従う大きなCSVを使用しています。
- 作業中のオリジナルをバックアップする
- スケルトンCSVを生成する
- 別のCSVから読み取り、コンテンツをフォーマットしてから、スケルトンに追加します
- バックアップから新しいデータにデータを追加します。
私が直面している問題は、バックアップからコンテンツを読み込むときに、grep -Ev -f
正規表現を含むファイルを使用して、バックアップから不要なデータを除外し、次のリビジョンに含めることです。grepは、ファイル内の各正規表現をSTDINのすべての行に対して評価しているように見えるため、これは現在問題を引き起こしています。これにより、重複が発生します。簡単な解決策は、それをパイプでsort | uniq
つなぎ、1日と呼ぶことですが、それは現在使用されているcsvのフォーマットに失敗します。必要に応じて詳しく説明できますが、IPアドレスを一括処理するスクリプトを実行しますが、他の人がファイルを手動で編集することもできます。現在のスクリプト形式では、最終的な出力はすべて自動化されたコンテンツになります。ファイルの下部に手動エントリがあります。
それで、パターンが一致した後に行の評価を停止するように指示するgrepの醜いループがないのはとにかくありますか?を使用-m 1
すると、ストリーム全体の最初の一致後にgrepが停止し、新しい行ごとに停止する必要があります。