カンマ区切りのテキストファイルに問題があります。混合レイアウト(数百)のファイルの受信を開始しようとすると、一部のレコードには7つのフィールド(合計6つのカンマ)があり、同じファイル内の他のレコードには6つのフィールド(5つのカンマ)があります。銃)。
5つのカンマを含むレコードを見つけたら、レコードの最後にカンマを追加してNAを追加して、ロードプロセスで最後のNAである7つのフィールドがあると思うようにしたいと思います。
これが私が今持っているものです。最初のレコードには7つのフィールドがあり、2番目のレコードには6つしかありません。
200000003183000100,Data,NA,0,IN,0,0.00
200000004625000000,Data,NA,0,IN,0
これが私が期待したものです(両方のレコードに7つのフィールドがあります)。
200000003183000100,Data,NA,0,IN,0,0.00
200000004625000000,Data,NA,0,IN,0,NA
sed やこれに似たものでカンマを数え、カンマが 5 つだけあるたびにファイルの末尾に、NA を追加すればよい。これは何百ものファイルで発生するため、ファイル名をパラメータとして使用するのか、それと同様のものを使用するのかは不明です。
ベストアンサー1
もしアッ許可される:
awk -F, 'NF==6{$0=$0",NA"}1' file