1

これを変換するにはどうすればよいですか:

2013-08-16T13:24:18+0200

この形式にある現在の形式からyyyy-mm-ddThh:mm:ss+hhmm?

yyyy/mm/dd.hh:mm:ss( 2013/08/18.13:24:18)

値はcsvファイルにあり、負の値もあるため、ハイフンをスラッシュに置き換えることはできません。タイムゾーンを指定する部分も削除してください。sed と awk に関する私の知識は非常に基本的なものです。

4

1 に答える 1

1

CSV の分割は、すべてが引用されているか、何も引用されていないか、またはいくつかのフィールドが引用されているかによって、非常に注意が必要です。そして、文字列内にエスケープされた引用符があるかどうかを心配し始めることができます. または、文字列内のコンマ。

データをよく知らなくても (文字列にコンマがなく、心配する引用符がない可能性があります)、sed/awk を使用できる場合と使用できない場合があります。複雑な CSV をお持ちの場合は、perl や Text::CSV のような、より効果的なものをお勧めします。

そのため、CSV の複雑さを排除するために、 Just の日付のファイルを解析する方法を紹介します。

パールの方法:

cat tmp.txt | perl -e 'for (<>){ s!(\d+)\D(\d+)\D(\d+)T(\d+)\D(\d+)\D(\d+)\+.*!$1/$2/$3.$4:$5:$6!; print $_}'

SED の方法:

sed -r 's!([0-9]+)\D([0-9]+)\D([0-9]+)T([0-9]+)\D([0-9]+)\D([0-9]+)\+.*!\1/\2/\3.\4:\5:\6!' tmp.txt
于 2013-08-19T14:51:30.833 に答える