これを変換するにはどうすればよいですか:
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 に関する私の知識は非常に基本的なものです。
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