Я попытался найти ответ здесь и в других источниках, но я в недоумении. Я создаю маленький крошечный awk-инструмент для использования с консольным твиттер-клиентом twidge (https://github.com/jgoerzen/twidge/wiki)AWK Преобразование «длинной даты» в datetime
Из выходных входящих твитов я хочу делать разные интересные материалы, но для того, чтобы данные были полезными Мне нужно чтобы получить метку времени в формате, который я могу обработать.
Для справки, вот выход настоящее время я получаю с помощью команды
Код
twidge lsrecent -l | gawk -F"\t" '{print "@"$2 ": " $4 " ("$5")"}'
Выход
@nytimes: China Cuts Ties With North Korean Bank http://t.co/N3iljjgGbH (Tue May 07 12:57:04 +0000 2013)
Тогда я пытался быть умным и сделал это
Код
twidge lsrecent -l | gawk -F"\t" '{print "@"$2 ": " $4 " ("strftime("%Y-%m-%d %T",$5)")"}'
Но получил эту несчастную выход
@BloombergNews: HSBC posts bigger-than-estimated increase in first-quarter profit | http://t.co/QraWonRU32 (1970-01-01 01:00:00)
Как мы можем видеть, преобразование даты не было, как хотелось бы. Любые указатели наиболее приветствуются. Это не должно быть awk/gawk, это просто предпочтение. В конечном итоге данные будут помещены в базу данных и будут работать там.
Спасибо!
Martin
Спасибо за вход, я пытался, но это то, что произошло '@ReutersBiz: акции OfficeMax выросли, поскольку специальные дивиденды перевешивают пропущенную прибыль http://t.co/LlR6yK4N8l (date -d" Вт май 07 13:30:32 +0000 2013 "+"% F% T ")' от команды ': ~/scripts $ twidge lsrecent -l | gawk -F "\ t" '{print "@" $ 2 ":" $ 4 "(" "date -d \" "$ 5" \ "+ \"% F% T \ "" ")"}' ' – Martin
I в моем коде есть 'getline'. вы просто конкатенируете строку с 'date -d .....', не выполнили ее. – Kent
ОК, поэтому мой вопрос заключается в том, как выполнить 'date'within awk-script – Martin