awk将整数拆分为几个部分

时间:2012-06-27 11:30:14

标签: awk split integer

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

3 个答案:

答案 0 :(得分: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"

答案 1 :(得分: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

答案 2 :(得分:2)

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

$ echo 20120305193821 | sed 's/\(....\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1-\2-\3-\4:\5:\6/'
2012-03-05-19:38:21