Я пытаюсь получить название месяца в awk, используя следующий код.
system("date -d" dat "+%b")
Как назначить вывод переменной?
Вам нужно использовать system()? А как насчет awk's strftime()? Вы можете посмотреть пример здесь (хотя, похоже, он специфичен для GNU-awk).
system()
strftime()
Если ваш вопрос «Как мне заполнить переменную выводом командной строки», то ответ - «каналы». : -)
$ awk 'BEGIN{ str="date \"+%b\""; str | getline content; print content; }' Dec
Обратите внимание, что это, вероятно, не то, что вы действительно хотите делать, но без более подробной информации о ваших намерениях, по крайней мере, это отвечает на ваш вопрос.
Вы можете сделать что-то вроде этого -
[jaypal:~/Temp] awk -v dat="20111016" 'BEGIN{split("Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",month,","); a=substr(dat,5,2); print month[a]}' Oct