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