所以我使用文件,我需要知道文件X中最大的行.使用Unix awk会产生我正在寻找的Int.但是在
Haskell中,我如何返回该值并将其保存到变量中?
我尝试用IO [Int]定义一些东西 – > [INT]
我尝试用IO [Int]定义一些东西 – > [INT]
maxline = do{system "awk ' { if ( length > x ) { x = length } }END{ print x }' filename";}
不起作用原因:
Couldn't match expected type 'Int',against inferred type 'IO GHC.IO.Exception.ExitCode'
这是因为
system
操作返回您运行的命令的退出状态,该状态无法转换为Int.您应该使用
readProcess
来获取命令输出.
> readProcess "date" [] [] "Thu Feb 7 10:03:39 PST 2008\n"
请注意,readProcess不会将命令传递给系统shell:它直接运行它.第二个参数是命令参数的位置.所以你的榜样应该是
readProcess "awk" [" { if ( length > x ) { x = length } }END{ print x }","/home/basic/Desktop/li11112mp/textv"] ""
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。