LINUX.ORG.RU

tail -f


0

0

Помогите пожжалуйста есть прога tail -f log.txt | grep "error" > er.txt однако файл er.txt пустой как я понял проблема в том что tail -f и grep не дружат grep не может считать stdout от tail вопрос: что делаь?

anonymous

Это пайп. До тех пор, пока tail -f не отработает до конца на вход grep ничего не поступит. А так как tail -f до конца принципиально не отработает - работать это не будет. Замени tail -f на cat и всё.

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

Бредишь.

Просто у пайпа есть буфер (4к или 8к не помню). Когда буфер заполнится, тогда и сбросится в файл.

anonymous
()
Ответ на: комментарий от Anoxemian

> Это пайп. До тех пор, пока tail -f не отработает до конца на вход grep ничего не поступит.

Только не говори мне, что при распаковке N-гигабайтного архива gzip -dc archive.tar.gz |tar x, он "прячется" где-то в пайпе прежде чем попасть в tar.

На самом деле, tail -f file |grep pattern работает, но совсем для других целей, нежели просто отгрепать файл целиком. Я, например, использую такую штуку, чтобы следить за логом определенного процесса, при том, что в лог еще много всякой фигни сыплется.

Просто отгрепать один файл в другой: "grep error log.txt >err.txt" или "grep error <log.txt >err.txt"

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