对整个文件使用 grep
Using grep for an entire file
我有一个包含 250 行的列表。我必须 运行 所有这些都通过网络服务器来获得输出列表。然而,这个列表 returns 比我感兴趣的多了很多行。比如说,我的 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
是否可以在output.txt
中使用grep命令搜索list.txt
中的所有单词,然后生成"the wanted"列表wanted.txt
?
我需要整行 output.txt
我在 AskUnuntu 上问过这个问题,但他们把我送到了这里。我被建议这个命令
$ grep -wFf list.txt output.txt
但系统提示我 grep: out of memory
。
对于像我这样的初学者,有没有简单的方法可以做到这一点?
这个单行代码读取 list.txt
中的每一行并在 output.txt
中查找它(假设你只想匹配开头有单词的行,并且只有当它是一个单词时自己的):
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
优雅,但可能会解决您的特定内存问题(未经测试)。
我有一个包含 250 行的列表。我必须 运行 所有这些都通过网络服务器来获得输出列表。然而,这个列表 returns 比我感兴趣的多了很多行。比如说,我的 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
是否可以在output.txt
中使用grep命令搜索list.txt
中的所有单词,然后生成"the wanted"列表wanted.txt
?
我需要整行 output.txt
我在 AskUnuntu 上问过这个问题,但他们把我送到了这里。我被建议这个命令
$ grep -wFf list.txt output.txt
但系统提示我 grep: out of memory
。
对于像我这样的初学者,有没有简单的方法可以做到这一点?
这个单行代码读取 list.txt
中的每一行并在 output.txt
中查找它(假设你只想匹配开头有单词的行,并且只有当它是一个单词时自己的):
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
优雅,但可能会解决您的特定内存问题(未经测试)。