Как сделать, чтобы преобразовать формат даты из "09-12": 36:10» на «09-Month-Year 12:36:10», заменив «Month» на название текущего месяца (трехбуквенное сокращение) и «Year» на текущий год (четыре цифры), используя awk? Например, измените «09-12:36:10» на «09-JUL-2018 12:36:10».
просто,
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)}'
Если у вас есть 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
Не знаю, насколько надежным он вам нужен, но вот начало:
#!/usr/bin/awk -f
BEGIN {
FS = "-"
}
{
print $1 "-MONTH-YEAR", $2
}