我有一个正在记录到纯文本日志文件(myapp.log)的应用程序,但它似乎没有在每个日志条目的末尾写入新行字符。如果我执行一个命令,就像tail -n 50 myapp.log
我实际上收到了数百“行”文本(日志条目)。
这个日志文件非常大,大约 1GB,谁知道最后一次 CR 和/或 LF 是在多久前 inserterd 的。例如,我如何才能抓取最后 2MB?
答案1
使用-c
开关(2MB = 2 * 1024 * 1024 = 2097152 字节):
tail -c 2097152 myapp.log
谢谢彼得·尤泽尔的建议。一些尾部实现允许添加一个单位来打印最后的千字节(k)或兆字节(m),例如:
tail -c 2m myapp.log
但请注意,它不是标准的(在 POSIX、UNIX (SUS) 或 Linux (LSB) 中都不是)并且不可移植。另请注意,由于术语“Mega”/“kilo”...及其缩写(M、k...)具有不明确的含义(1000 vs 1024),因此无法保证这个或那个实现的tail
含义2m
(尽管支持它的当前实现的当前版本似乎适用于 1024 变体)。