使用awk格式化日期字段

使用awk格式化日期字段

如何将日期格式从“09-12:36:10”转换为“09-Month-Year 12:36:10”,用当前月份名称(三个字母缩写)和“Year”替换“Month”与当前年份(四位数),使用 awk?例如,将“09-12:36:10”更改为“09-JUL-2018 12:36:10”。

答案1

简单地,

echo 09-12:36:10 | awk -F '-' -v date="$(date +"-%b-%Y " )" '{ print $1date$2}'

如果您希望月份大写:

echo 09-12:36:10 | awk -F '-' -v date="$(date +"-%b-%Y " )" '{ print toupper($1date$2)}'

答案2

不确定你需要这个有多强大,但这是一个开始:

#!/usr/bin/awk -f
BEGIN {
    FS = "-"
}
{
    print $1 "-MONTH-YEAR", $2
}

答案3

如果您有 GNU Awk ( gawk),您可以使用它的内置systimestrftime

gawk -F'[-]' '{print $1, strftime("%b %Y", systime()), $2}'   

前任。

$ echo '09-12:36:10' | gawk -F'[-]' '{print $1, strftime("%b %Y", systime()), $2}'
09 Jul 2018 12:36:10

如果您需要大写的缩写月份,请尝试%^b例如

$ echo '09-12:36:10' | awk -F'[-]' '{print $1 strftime("-%^b-%Y", systime()), $2}'
09-JUL-2018 12:36:10

相关内容