如何使用AWK将字符串201702221015拆分为CCYY | MM | DD | HH | MN格式

时间:2017-02-22 22:43:14

标签: awk

如何使用awk以201702221015格式拆分字符串CCYY|MM|DD|HH|MN,即将字符串201702221015拆分为2017|02|22|10|15

4 个答案:

答案 0 :(得分:3)

使用GNU awk for gensub()的一种方法:

$ awk 'BEGIN{print gensub(/(..)(..)(..)(..)$/,"|\\1|\\2|\\3|\\4",1,201702221015)}'
2017|02|22|10|15

答案 1 :(得分:2)

@Hanif:尝试(虽然我不确定要求):

echo "201702221015" | awk '{print substr($0,1,4)"|"substr($0,5,2)"|"substr($0,7,2)"|"substr($0,9,2)"|"substr($0,11,2)}'

答案 2 :(得分:2)

另一种解决方案,使用gnu-awkFIELDWIDTHS

echo "201702221015" | awk 'BEGIN{FIELDWIDTHS = "4 2 2 2 2"; OFS="|"}$1=$1'

你明白了,

2017|02|22|10|15

答案 3 :(得分:0)

为什么要用awk? sed更有意义:

echo "201702221015" | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/\1|\2|\3|\4|\5/'