間違ったデータを新しいファイルでフィルタリングしてから削除する方法は?

間違ったデータを新しいファイルでフィルタリングしてから削除する方法は?

以下は、私がソートしたサンプルデータです(3列)。

CustomerId, fname, lname, email, 性別, 購入金額, クレジットカード, 取引ID, 取引日, 通り, 都市, 州, 郵便番号, 電話

<redacted>

次のコマンドを使用して:

awk -F ',' '{ state = $12 ? $12: "exceptions.csv"; print}' < "03_conv_gender.tmp" > "04_filter_bad_data.tmp"

各行に {state} 値がないことを確認し、欠落している場合は「Exceptions.csv」という新しいファイルに入れます。

「04_filter_bad_data.tmp」から元の不良データを削除するにはどうすればよいですか?それともこれを行うより良い方法はありますか?

ベストアンサー1

awk -F, '{ print >($12==""?"badData.csv":"goodData.csv") }' infile

これにより、入力ファイルが空の列#12(状態フィールド)がファイルに書き込まれます。「無効なデータ.csv」そうでなければ書かれます「良いデータ.csv」結果ファイル。

おすすめ記事