以CSV格式提交的ISO日期格式,我需要将该ISO字段转换为IST并将其存储在同一个csv文件中

时间:2017-06-15 07:10:22

标签: linux bash awk

我有以CSV格式归档的ISO日期格式,我需要将该ISO字段转换为IST并通过Bash脚本将其存储在同一个csv文件中。有没有办法通过awk

来做到这一点

1 个答案:

答案 0 :(得分:0)

I don't know how to do this with awk, but you're asking in the context of a Bash script, so maybe this helps?

neech@nicolaw.uk:~ $ cat input.csv
"2017-06-12T05:00:37.139Z"
"1980-01-01T00:30:00.100Z"
"2010-12-31T23:59:59.341Z"
neech@nicolaw.uk:~ $ cat csvtest.sh
#!/bin/bash

set -Euo pipefail

while read -r field1 field2
do
  printf '"%s","%s"\n' \
    "${field1//\"/}" \
    "$(env TZ=Asia/Kolkata date -d "${field1//\"/}" +"%FT%T.%-3NZ%z")" \
    >> "${2:-output.csv}"
done < "${1:-input.csv}"

neech@nicolaw.uk:~ $ ./csvtest.sh
neech@nicolaw.uk:~ $ cat output.csv
"2017-06-12T05:00:37.139Z","2017-06-12T10:30:37.139Z+0530"
"1980-01-01T00:30:00.100Z","1980-01-01T06:00:00.100Z+0530"
"2010-12-31T23:59:59.341Z","2011-01-01T05:29:59.341Z+0530"
neech@nicolaw.uk:~ $