在比较不同的文件
import sys.process._"
"diff data.txt myFile.txt" !
Run Code Online (Sandbox Code Playgroud)
退出代码按预期证明非零,
< 1
---
> 123
res1: Int = 1
Run Code Online (Sandbox Code Playgroud)
然而,试图收集实际的差异
val d = "diff data.txt myFile.txt" !!
java.lang.RuntimeException: Nonzero exit value: 1
at scala.sys.package$.error(package.scala:27)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.slurp(ProcessBuilderImpl.scala:132)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.$bang$bang(ProcessBuilderImpl.scala:102)
... 33 elided
Run Code Online (Sandbox Code Playgroud)
要问如何将差异提取到String(给定的小文件)?
我认为你需要使用lineStream_!方法,而不是!.使用作为diff命令输出的行流,您可以执行任何操作:打印,将其转换为列表,阵列或其他任何需要的内容.
val st = "diff input.txt output.txt" lineStream_!
// now st is a Stream[String]
println(st.mkString("\n"))
Run Code Online (Sandbox Code Playgroud)
编辑:我相信之前的方法被称为lines_!.现在它被弃用了.以防万一你使用旧的Scala版本.
| 归档时间: |
|
| 查看次数: |
2734 次 |
| 最近记录: |