我試圖讓斯卡拉相同的輸出,因爲我有從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