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 之类的更有趣的东西。

因此,我将向您展示如何解析Just 日期文件,以便避免 CSV 的复杂性。

perl 方式:

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 回答