2017-10-16 40 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]

回答

相關問題