Clojureでawkのようなフィルタ処理をやろう・・・
といろいろ考えていたが、楽にできることがわかった。
準備
この辺りを使えば簡単。
(use '[clojure.contrib.duck-streams :only (reader read-lines)] '[clojure.contrib.str-utils :only (re-split)])
先頭の文字列だけ取得
namelist.txtは適当なテキストファイルとする。
(map #(let [fs (re-split #" " %)] (first fs)) (read-lines (reader "namelist.txt")))
合計値取得
score.txtは、こんな感じのファイルとする。
12 34 53 0 5
コードは以下の通り。
(reduce + 0 (map #(Integer/parseInt %) (read-lines (reader "score.txt"))))