É possível seguir um arquivo binário desde o início, à la tail -f
?
Isso é útil em alguns casos, por exemplo, se eu estiver scp
inserindo um arquivo em um servidor remoto e, ao mesmo tempo, desejar alimentá-lo para outro processo (sim, eu sei que posso usar ssh
+ cat
truques).
Tanto quanto eu li da FM, tail
está escrito com arquivos de texto em mente.
Existe alguma maneira simples de fazer essas operações usando ferramentas posix padrão?
text-processing
tail
binary
Marcus
fonte
fonte
tail
só pode ser usado com arquivos de texto?tail
nem sempre lidam com arquivos binários: podem engasgar com bytes nulos ou omitir bytes perdidos após a última nova linha nos arquivos de entrada. Os sistemas modernos lidam.Respostas:
tail
trabalha com dados binários tão bem quanto com texto. Se você deseja iniciar no início do arquivo, pode usartail -c +1 -f
.fonte
cat bin_file | strings - -o | grep match_string
, mas quando o façotail -c +1 -f bin_file | strings - -o | grep match_string
, não consigo nada além da 9ª correspondência. Notei também que os números de linha de-o
são todos menos 1 em comparação com a saída do gato. Se eu deixar o grep desligado, recebo todas as 16 correspondências (misturadas com todo o resto), então pensei que o problema era grep, mas tentei um one-liner perl e ele parou no mesmo lugar ...