18 lines
712 B
Clojure
18 lines
712 B
Clojure
(require '[clojure.java.io :as jio]
|
|
'[clojure.string :as str])
|
|
|
|
(defn remove-lines2 [filepath start nskip]
|
|
(with-open [rdr (jio/reader filepath)]
|
|
(with-open [wrt (jio/writer (str filepath ".tmp"))]
|
|
(loop [s start n nskip]
|
|
(if-let [line (.readLine rdr)]
|
|
(cond
|
|
(> s 1) (do (doto wrt (.write line) (.newLine))
|
|
(recur (dec s) n))
|
|
(pos? n) (recur s (dec n))
|
|
:else (do (doto wrt (.write line) (.newLine))
|
|
(recur s n)))
|
|
(when (pos? n)
|
|
(println "WARN: You are trying to remove lines beyond EOF"))))))
|
|
(.renameTo (jio/file (str filepath ".tmp")) (jio/file filepath)))
|