Command-Line

如何在忽略某些文本的情況下重定向

  • May 13, 2022

一些潛在的重複可能如下:

如何忽略重定向的特定行

但我不能由此推斷來解決我的問題。所以,我在這裡問。

所以,這是我到目前為止得到的:

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

我正在嘗試評估一個 lisp 文件,讀取一個文本文件test.lisp並將其用作(ql:quickload :lambda-calculus-compiler. 載入此函式時,將呼叫 reads 讀取內容,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)

任何幫助將不勝感激。請不要將此標記為重複項。正如我所提到的,我無法從上面連結的答案中推斷出來。

謝謝。

一種選擇是在重定向到文件之前通過 sed 管道命令:

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

這將刪除從 1 開始到包含該片語之後的行。

但我懷疑可能還有其他特定於 sbcl 的選項,正如我在評論中提到的那樣。

引用自:https://unix.stackexchange.com/questions/702343