У меня есть файл и поле является меткой времени, как 20141028 20:49:49
, я хочу, чтобы получить час 20
, поэтому я использую system
команду:как получить вывод команды «системы» в AWK
hour=system("date -d\""$5"\" +'%H'")
штамп времени является пятым полем в моем файле, поэтому я использовал $5
. Но когда я выполнил программу, я нашел команду выше, просто вывел 20
и вернул 0 так hour is 0 but not 20
, так что мой вопрос в том, как получить час в штампе времени?
Я знаю, что метод, который использует split
функцию два раза, как это:
split($5, vec, " ")
split(vec[2], vec2, ":")
Но этот метод немного неэффективный и некрасиво.
так что есть ли другие решения? Спасибо
Возможный дубликат [позвонить ей ll изнутри awk и передать некоторые awk-переменные команде оболочки] (http://stackoverflow.com/questions/20646819/call-a-shell-command-from-inside-awk-and-pass-some-awk- variables-to-the-shell-co) –
В частности, [этот ответ] (https://stackoverflow.com/questions/20646819/call-a-shell-command-from-inside-awk-and-pass-some- AWK-переменные-к-оболочки со/20648953 # 20648953). –
@ nu11p01n73R моя ошибка, уже исправлено Спасибо – ningyuwhut