我有一个包含250行的列表。我必须通过Web服务器运行所有这些以获取输出列表。然而,这个列表会返回比我感兴趣的更多行。比如说,我的list.txt是:
a.1
b.1
etc
然后输出是output.txt:
a.1 a b c
a.2 b a b
a.3 d k o
b.1 b o p
b.2 o i y
b.3 p i y
etc
是否可以使用grep命令搜索list.txt
中output.txt
中的所有字词,然后生成"想要的"列出wanted.txt
?
我需要output.txt
我在AskUnuntu上问了这个问题,但是他们已经把我送到了这里。我被建议这个命令
$ grep -wFf list.txt output.txt
但我提示grep: out of memory
。
对于像我这样的初学者,是否有一种简洁的方法可以做到这一点?
答案 0 :(得分:0)
这个单行读取list.txt
中的每一行,并在output.txt
中为它添加greps(假设您只想匹配行开头的行,并且只有它是其中的一个词)自己的):
while read word ; do grep -w "^$word" output.txt ; done < list.txt > wanted.txt
使用提供的示例输入加上以下行
a.1bar
fooa.1
foo a.1 bar
wanted.txt
包含:
a.1 a b c
b.1 b o p
请注意,此解决方案不如使用grep -f
优雅,但可能会解决您的特定内存问题(未经测试)。