我试图让斯卡拉相同的输出,因为我有从Mac/Linux上运行下面的命令得到:如何在Scala中应用正则表达式处理输出?
ps -ef | egrep "(mongo|mysql|rabbitmq)"
这是我实现,但我在寻找一个优雅的一个。
import sys.process._
import scala.collection.mutable.HashSet
object Regex {
val set = new HashSet[String]
val logger = ProcessLogger(
(o: String) => """(mysql|mongo|rabbitmq)""".r findAllIn o foreach (set += _),
(e: String) => println(e))
"ps -ef " ! logger
println(set)
}
我想要的另一种方法是从ProcessLogger调用“启动”功能,但无法使其正常工作。
val Procs = """(mysql|mongo|rabbitmq)""".r
def started(i: String) = i match {
case Procs(p) => p
case _ => null
}
谢谢。
正是我一直在寻找。谢谢。 – gosanjeev 2013-04-11 17:19:47