如何在忽略某些文本的情况下进行重定向

如何在忽略某些文本的情况下进行重定向

一些潜在的重复可能如下:

如何忽略被重定向的特定线路

但我无法从中推断来解决我的问题。所以,我在这里问。

所以,这是我到目前为止得到的:

sbcl --noinform --non-interactive --eval "(ql:quickload :lambda-calculus-compiler)" < test.lisp > x.txt

我正在尝试评估一个 lisp 文件,读取一个文本文件test.lisp并将其用作(ql:quickload :lambda-calculus-compiler.加载此函数时,将调用读取函数,该函数将读取其中的内容test.lisp,然后此评估将被重定向到x.txt.

x.txt以下是此操作后的内容:

To load "lambda-calculus-compiler":
  Load 1 ASDF system:
    lambda-calculus-compiler
; Loading "lambda-calculus-compiler"
(((LAMBDA (N) (LAMBDA (M) (LAMBDA (F) (LAMBDA (Z) ((M F) ((N F) Z))))))
  (LAMBDA (F) (LAMBDA (Z) (F (F (F Z))))))
 (LAMBDA (F) (LAMBDA (Z) (F (F (F Z))))))

我想忽略或摆脱

To load "lambda-calculus-compiler":
  Load 1 ASDF system:
    lambda-calculus-compiler
; Loading "lambda-calculus-compiler"

这是 的输出(ql:quickload :lambda-calculus-compiler)

任何帮助将不胜感激。请不要将此标记为重复。正如我所提到的,我无法从我上面链接的答案中推断出来。

谢谢。

答案1

一种选择是在重定向到文件之前通过 sed 通过管道传输命令:

sbcl --noinform --non-interactive --eval "(ql:quickload :lambda-calculus-compiler)" < test.lisp |
  sed '1,/Loading "lambda-calculus-compiler"/ d' > x.txt

这将删除从 1 开始到包含该短语的后面的行。

但我怀疑可能还有其他特定于 sbcl 的选项,正如我在评论中提到的。

相关内容