-3

我有这个整数20120305193821,我想把它分成几个部分2012-03-05-19:38:21,以便在 awk 中进一步使用。有人可以帮忙吗?

4

3 回答 3

4

如果您使用的是 gawk,则可以使用 FIELDWIDTHS:

echo 20120305193821 | gawk '{printf "%s-%s-%s-%s:%s:%s\n",
      $1, $2, $3, $4, $5, $6}' FIELDWIDTHS="4 2 2 2 2 2"
于 2012-06-27T13:48:32.770 回答
2

为什么不使用子字符串?写起来很无聊,但正如你暗示的那样,你有索引?

echo "20120305193821" | awk '{printf "%s-%s-%s-%s:%s:%s\n",substr($1,1,4),substr($1,5,2),substr($1,7,2),substr($1,9,2),substr($1,11,2),substr($1,13,2)}'

输出:

2012-03-05-19:38:21

于 2012-06-27T12:19:09.080 回答
2

我知道你没有标记漂亮sed所以只是在这里发布以供参考 -

$ echo 20120305193821 | sed 's/\(....\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1-\2-\3-\4:\5:\6/'
2012-03-05-19:38:21
于 2012-06-27T15:39:04.147 回答