Cia*_*her 4 filesystems clojure command-line-interface
我正在尝试联系Clojure中的终端,将两个二进制文件连接在一起.
所以我想尝试做类似的事情: cat file1 file2 > target
我开始看海螺,但我似乎cat
无法将输入视为文件路径而不是字符串,例如
(def files '["/tmp/file1" "/tmp/file2"])
(defn add-to-target [files target]
(cat {:in files :out (java.io.File. target)}))
(add-to-target files "/tmp/target")
Run Code Online (Sandbox Code Playgroud)
写入/tmp/target
文件的结果是:
/tmp/file1
/tmp/file2
Run Code Online (Sandbox Code Playgroud)
我很高兴尝试其他(也许更多Clojure惯用)方法来做到这一点.
提前致谢.
干得好:
(ns user
(:require [clojure.java.io :as io]))
(defn catto [f1 f2 out]
(with-open [o (io/output-stream out)]
(io/copy (io/file f1) o)
(io/copy (io/file f2) o)))
;; in REPL
;; > (catto "station.mov" "super.pdf" "zzz.bin")
Run Code Online (Sandbox Code Playgroud)
看看clojure.java.io docs.