我在玩Turtle,我遇到了以下问题。如何grep海龟的ls结果
我想这样做(带壳)
ls | grep 'foo'
使用龟我的尝试是
grep (prefix "foo") (ls ".") & view
,但我得到了以下信息
Couldn't match type ‘Turtle.FilePath’ with ‘Text’
Expected type: Shell Text
Actual type: Shell Turtle.FilePath
In the second argument of ‘grep’, namely ‘(ls ".")’
In the first argument of ‘(&)’, namely
‘grep (prefix "foo") (ls ".")’
我明白ls
回报FilePath
而grep
适用于Text
,那我该怎么办?
更新
有明显这涉及到来回转换,从FilePath
到Text
解决方案。这超出了我期望的类似shell的程序的简单性。
有人提到了find
函数,它可以以某种方式解决问题。 但是find
相当于find
shell函数,我只是想做ls | grep "foo"
。我并没有试图解决现实生活中的问题(如果是的话,我会转而使用bash),但是试图结合简单的砖块,就像我在bash中做的那样。不幸的是,它似乎并没有在龟砖是易:-(结合起来。
+1不坏,但能够解决一半的问题。假设我想将选定的文件移动到某处,然后我需要将它们转换回'FilePath'。 – mb14
'repr'在ghci中有效,但我无法在您提供的链接上找到它。 – mb14
@ mb14我编辑了答案以包含正确的链接。还要注意''repr = format w''格式描述[这里](https://hackage.haskell.org/package/turtle-1.0.0/docs/Turtle-Format.html#v:format)。 – Bakuriu