我如何转换它:
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的了解非常基础。
答案 0 :(得分:1)
拆分CSV可能非常棘手,具体取决于是引用所有内容还是引用任何内容,或引用某些字段。然后,我们可以开始担心你的字符串中是否存在转义引号。或者字符串中的逗号。
在不知道你的数据的情况下(可能你的字符串中没有逗号而且没有引号可以担心),你可能会也可能不会使用sed / awk。如果你有复杂的CSV,我建议像perl和Text :: CSV这样的东西。
因此,我将向您展示如何解析 Just dates 的文件,以便将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