LINUX.ORG.RU

awk,date


0

2

Есть лог в несколько колонок, в одной из них UNIX time. Хочу чтобы оно tail'илось, но с человеческим временем.

Так не работает:

tail -f /var/blabla/blabla | awk '{print `date -u -d @$1`}'
★★★★

Ответ на: комментарий от tides

Вывод этой команды через grep не проходит. Просто ничего не выдаётся, даже если искомая подстрока там заведомо есть

yu-boot ★★★★
() автор топика
Ответ на: комментарий от zolden

tail -f /var/bla/bla | myawk
2012-07-22 13:14:55 1342716792-37336 блаблабла
2012-07-22 13:14:55 1342716792-37336 блаблабла

tail -f /var/bla/bla | myawk | grep '2012'
...тишина...

cat /usr/local/bin/myawk
awk '{print strftime(«%F %T», $1)«\t»$2"\t"$3"\t"$4"\t"$5"\t"$6"\t"$7"\t"$8"\t"$9"\t"$10"\t"$11"\t"$12"\t"$13"\t"$14}'

yu-boot ★★★★
() автор топика
Ответ на: комментарий от sdio

а как отличить буферизацию на уровне awk, от буферизации grep'а?
по идее раз у него после awk данные идут, то виноват grep

ТС, попробуйте grep --line-buffered

zolden ★★★★★
()
Ответ на: комментарий от zolden

это glibc буферизирует, а fflush говорит ей принудительно скинуть буфер

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.