在文件中搜索单词

Searching for a word in a file

我是erlang新手,想学习一下。我想从一个文件中实现一个简单的词搜索,它应该只显示这个词,如果它在文件中。

我是这样开始的:

readlines(FileName, Word) ->
 {ok, File} = file:open(FileName ,[read]),
    try get_all_lines(File, Word)
      after file:close(File)
    end.

 get_all_lines(File, Word) ->
  io:get_line(File, "") of eof  -> [];
  if word = searchWord -> display(word);
  true -> io:fwrite("no such word in file")
  end.

我的方法是否正确,还是应该尝试另一种方法?或者有什么地方可以简单地实现这个?有人可以帮我解决这个问题吗?

P.S。抱歉我的英语不好

我不知道它是否足够好,但您可以尝试读取文件然后将其拆分为单词

并检查列表是否包含您经过的单词

readlines(FileName, Word) ->
    {ok, Data} = file:read_file(FileName),
    ListOfWords = binary:split(Data, [<<"\n">>, <<" ">>], [global, trim_all]),

    case lists:member(Word, ListOfWords) of
        true -> Word;
        false -> undefined
    end.

1> c(test).                                                                            
{ok,test} 
2> test:readlines("/home/tmp/some.txt", <<"Bin">>). 
undefined
3> test:readlines("/home/tmp/some.txt",<<"This">>).
<<"This">>