なんか色々調べましたが、ソースコードを見るのが早かったような気がしました。
scala/ProcessBuilder.scala at 27da46343cd545534819300235bc64ab74958c92 · scala/scala · GitHub
冒頭のコメントにはこんなことが書いてありました。
* import scala.sys.process._
*
*
* "ls".!
*
*
* val contents = Process("ls").lineStream
- !は実行して、結果を標準出力に送る。戻り値は、ステータスコード。
- 実行結果を変数に格納したいときは、 lineStreamを使う。
で、本題。diffコマンドであれこれしてみる。
scala> import sys.process._
import sys.process._
scala> val st = "diff a.txt b.txt" lineStream_!
warning: there was one feature warning; re-run with -feature for details
st: Stream[String] = Stream(1c1, ?)
scala> st
res0: Stream[String] = Stream(1c1, ?)
scala> println(st.mkString("\n"))
1c1
< aaa
---
> bbb
scala> st.toList
res2: List[String] = List(1c1, < aaa, ---, > bbb)
普通に色々できそうですね。
alvinalexander.com
stackoverflow.com