プログラムの出力を収集する - lisp-cookbook-ja/common-lisp GitHub Wiki
プログラムの出力を収集する
外部のプログラムを呼ぶ方法については処理系依存になりますが、大抵の処理系は呼び出す機能を備えています。 下記の例では、CLiki:KMRCL の command-outputを利用しています。
出力を一つの文字列として収集
(let ((output (kmrcl:command-output "ls /bin/z*")))
output)
;=> "/bin/zcat
/bin/zcmp
/bin/zdiff
/bin/zegrep
/bin/zfgrep
/bin/zforce
/bin/zgrep
/bin/zless
/bin/zmore
/bin/znew
/bin/zsh
/bin/zsh4
"
出力を行ごとに分けたリストにする
CLiki:cl-ppcre を利用
(let ((output (ppcre:split "\\n"
(kmrcl:command-output "ls /bin/z*"))))
output)
;=> ("/bin/zcat" "/bin/zcmp" "/bin/zdiff" "/bin/zegrep"
"/bin/zfgrep" "/bin/zforce" "/bin/zgrep" "/bin/zless"
"/bin/zmore" "/bin/znew" "/bin/zsh" "/bin/zsh4")