csvファイルから列の特定の部分を切り取る[閉じる]

csvファイルから列の特定の部分を切り取る[閉じる]

約15列のCSVを処理する必要があります。そのうちの1つには、ミリ秒を含む特定のタイムスタンプが含まれています。このcsvをデータベースに挿入すると、特定の時間形式が原因でエラーが発生します。他の列に触れることはできませんが、6番目の列の出力を切り捨てて新しいファイルを作成する必要があります。

例は次のとおりです。

73306758;Da Lavorare;;20300;RESTAROC;10/10/2014 16:37:22.425;PALAGIANO;TA;PUGLIA;;Libretto;IDENTITA;AI2000000;OK;DOC Valido;0;0;CCCMNN85X26X251X;OK;CF Attribuito;0;0

ベストアンサー1

4番目の列の後に数字が続く場合を取り除くと仮定すると:(質問では6番目の列であると言いましたが、例では4番目の列です)、次のいずれかを使用できます。

  1. アッ

    awk -F';' -v OFS=";" '{sub(/\.[0-9]*$/,"",$6);}1;' file.csv > new.csv
    
  2. Perl(これは実際のファイルを変更し、ソースを保持しますfile.csv.bak

    perl -i.bak -F';' -ane '$F[5]=~s/\.[0-9]*$//; print join ",", @F' file.csv
    

おすすめ記事