4
A
回答
6
這會打開一個文件,讀取最後一個字節並關閉文件。
(defun read-final-byte (filename)
(with-open-file (s filename
:direction :input
:if-does-not-exist :error)
(let ((len (file-length s)))
(file-position s (1- len)) ; 0-based position.
(read-char s nil)))) ; don't error if reading the end of the file.
如果你想具體讀取最後n
行,你將不得不直到你n+1
換行符讀回的字節數量不確定。爲了做到這一點,你需要向後進行塊讀取(更快,但會在讀取不需要的字節時結束)或字節讀取(速度較慢但允許精確並且稍微更明顯的算法)。
我懷疑tail
有一個合理的算法適用於此,所以它可能會值得讀tail
的source爲指導。
相關問題
- 1. 如何使用cl命令?
- 2. 使用openshift rhc tail命令
- 3. 命令:tail file.txt'
- 4. linux tail命令
- 5. 如何使用shell命令實現MapReduce?
- 6. 如何使用Boost.Program_options實現子命令?
- 7. 如何反覆對多行文本文件使用tail命令?
- 8. linux命令「tail -f filename」不起作用
- 9. 「tail -f filename」的Web實現?
- 10. 在C++中實現「tail -f」
- 11. 使用execvp來實現查找命令
- 12. 使用JAVA在命令行中實現
- 13. 使用resque實現命令模式
- 14. 如何實現新的shell命令?
- 15. 如何實現命令行着色?
- 16. tail和less命令沒有實時監視文件
- 17. 如何實現ls -l命令使用Scala的
- 18. 如何使用JAVA實現Linux頂級命令UI?
- 19. 如何在MVVM中使用Tooltip實現命令?
- 20. 如何使用execvp實現命令ls -l?
- 21. 如何在變量中存儲tail命令的結果?
- 22. 如何通過java程序停止tail -f命令?
- 23. 無法在PHP腳本中執行CL命令(AS400命令)
- 24. 如何在CL/400中使用runqry命令執行where條件的db2查詢
- 25. unix/linux的Java IO實現「tail -f」
- 26. 在MMVM中實現命令
- 27. 實現命令隊列
- 28. 實現命令模式
- 29. 'Tail -10'爲使用java的大型日誌文件實現
- 30. 如何使用`tail`用`timeout`在bash
請參閱http://www.lispworks.com/documentation/lw51/CLHS/Body/f_file_p.htm – 2012-03-28 06:36:58