0

我正在寻找一个 type 的函数Text -> [Text],本质上它会根据换行符分割文本。但是我不能只是分裂,\n因为这可能会被转义,例如\\n,我不确定还有什么其他并发症。

主文件

{-# 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

例子.sh

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

输出./example.sh

test1\n
test2
test3

所以这是 3 行的输出。

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

4

1 回答 1

0

https://hackage.haskell.org/package/text-1.2.2.2/docs/Data-Text.html#v:lines

main :: IO ()
main = do
  v <- shelly example
  print $ Data.Text.lines v
于 2017-10-16T18:35:41.663 回答