0

私は次のようなものを読んでいるcsvファイルを持っています:

"Name","Payment",...,"DATE"
"Mike","40",...,"12252012"
"Jack","55",...,"01162013"
...

このファイルには、約数千のそのようなリストが含まれています。また、8桁以上の数値のフィールドもあります。1つ確かなことは、DATEフィールドが最後の列であるということです。

その中のDATE列をMMDDYYYYからYYYYMMDD形式に変更するにはどうすればよいですか?

KornShellの方が優れています。

ありがとう。

4

1 に答える 1

2

編集:日付フィールドが常に行の最後のフィールドである場合は、次を使用できます。

cat file.csv | perl -pe 's/(.*,")(\d{2})(\d{2})(\d{4})"/$1$4$2$3"/'

また

perl -p -i -e 's/(.*,")(\d{2})(\d{2})(\d{4})"/$1$4$2$3"/' file.csv

CSVに8桁以上のフィールドが1つしかない場合:

Perlの場合:

cat file.csv | perl -pe 's/(\d\d)(\d\d)(\d\d\d\d)/$3$1$2/'

またはそれより短い(ファイルを所定の位置に編集):

perl -p -i -e 's/(\d{2})(\d{2})(\d{4})/$3$1$2/' file.csv
于 2013-03-12T20:03:29.753 に答える