2017-10-16 42 views
0

我正在寻找类型为Text -> [Text]的函数,实质上这将按换行符分割文本。然而,我不能只是分裂\n,因为这可能会逃脱例如\\n,我不知道还有什么其他并发症存在。如何在使用Shelly运行外部进程时处理多行输出?

Main.hs

{-# LANGUAGE OverloadedStrings #-} 

import Data.Text (Text) 
import Data.Text.IO 
import Shelly 

example :: Sh Text 
example = run "./example.sh" [] 

main :: IO() 
main = do 
    v <- shelly example 
    Data.Text.IO.putStrLn v 

example.sh输出./example.sh

echo "test1\\n" 
echo "test2" 
echo "test3" 

test1\n 
test2 
test3 

因此,这是3行输出。

Shelly是否支持一些功能来处理上述问题?或者,也许一些其他Haskell库来解析输出?我想它会看起来像putStrLn但不输出到IO()它会输出到[Text]

回答

相关问题