如何使用awk以201702221015
格式拆分字符串CCYY|MM|DD|HH|MN
,即将字符串201702221015
拆分为2017|02|22|10|15
?
答案 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-awk
和FIELDWIDTHS
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/'