我如何转换这个:
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 之类的更有趣的东西。
因此,我将向您展示如何解析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