Common lisp 公共lisp逐行读取gzip压缩的流

Common lisp 公共lisp逐行读取gzip压缩的流,common-lisp,sbcl,Common Lisp,Sbcl,我目前正在处理一个问题,我必须逐行读取一个压缩文件,然后进一步处理每一行并处理它 我使用以下代码设法从stdin中读取: (defun process () (princ (split-sequence:split-sequence #\Space (read-line)))) (defun main (args) (process)) *这将是一个命令行工具 我以如下方式运行它: cat file.txt | ./executable 这很好,但它只打印第一行。我假设我必须在第

我目前正在处理一个问题,我必须逐行读取一个压缩文件,然后进一步处理每一行并处理它

我使用以下代码设法从stdin中读取:

(defun process ()

  (princ (split-sequence:split-sequence #\Space (read-line))))

(defun main (args)
  (process))
*这将是一个命令行工具

我以如下方式运行它:

cat file.txt | ./executable
这很好,但它只打印第一行。我假设我必须在第一部分中插入某种形式的循环,但我不确定如何做到这一点

谢谢你的帮助

我用以下方法解决了这个问题:

  (loop for line = (read-line) ; stream, no error, :eof value
     until (eq line :eof)
     do (princ line))