如何将日期格式从“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
),您可以使用它的内置systime
和strftime
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