我有两个文件。文件1:
ruby,amazing,awesome
file2的:
ruby-443-543-fx\n
amazing-122-454-nx\n
hello-432-544-lx\n
awesome-522-65-nx\n
如何运行搜索以将file1单词与file2行匹配(例如,从file1惊人地匹配惊人的122-454-nx)?然后,我需要打印匹配的结果如下:
ruby-443-543-fx\n
amazing-122-454-nx\n
awesome-522-65-nx\n
答案 0 :(得分:1)
如果您将file1
转换为要搜索的单词的每行一个列表,则可以使用友好的Unix-y搜索工具grep
:
grep -f file1 file2
这肯定比你在Ruby中构建的任何东西都要快。
如果要从结果中删除换行符,可以使用tr
命令执行此操作,如下所示:
grep -f file1 file2 | tr -d "\n"
答案 1 :(得分:0)
以这种方式:
words = File.read("file1.txt").strip.split(/,/)
words_regex = Regexp.union(words)
File.open("file2.txt").each do |line|
puts line if line =~ words_regex
end
输出:
ruby-443-543-fx
amazing-122-454-nx
awesome-522-65-nx