I wrote this without much thought:
(defn- tail-cmd
"Construct a tail cmd"
[file n & ignore-patterns]
(clojure.string/join
" | "
(flatten [(format "tail -n %s -f %s" (or n 200) file)
(map #(format "grep --line-buffered -v \"%s\"" %)
ignore-patterns)])))
On further thought, I'm not sure if it can simplified further. Can it be?