Solaris中是否有读取文件的命令,以及尾随尾巴的方式? 我需要从头阅读文件,它是一个二进制文件。
有关Solaris和Linux的信息,将不胜感激。
tail -9999f
将做一些你想要的东西。 如果您的文件较大,请添加更多9s。
问题:
tail -f
会在打印任何东西之前等待换行符。 tail
版本(您没有提及哪个 Solaris,但可能并不重要),可能不支持该选项。 它可能支持tail -n 9999 -f
。 您可能需要获取GNU版本的尾部。 tail
不知道什么时候你真的写完文件,所以你的gzip
过程永远不会结束。 我不确定当ctrl-c
结束tail
进程时会发生什么情况,但很可能gzip会自行清理并删除正在处理的文件。 我的build议是开始你的原始程序,并输出到gzip像这样:
./my_program | gunzip > new_file.txt
这样,如果my_program
变慢,gunzip会等待,但是当my_program
结束时指示文件的真正结束时,gunzip仍然会结束。
您可能需要重写程序以写入STDOUT,而不是直接写入文件。
编辑:
查看手册页后 ,可以解决上述三个问题。 使用-c <bytes>
选项而不是-n <lines>
减轻问题1.使用-n +0
或-c +0
减轻问题3.使用--pid=<PID>
将使原始程序以<PID>
运行)终止,从而缓解问题4。
在linux中,你可以使用tail -f -n +0 /path/filename
来查看它。 而-n通常是指文件末尾要打印的行数,当传递+<n>
它从文件开头的第n行开始。
从tail --help
:
-n, --lines=K output the last K lines, instead of the last 10; or use -n +K to output lines starting with the Kth