grep两个字符串/单词的列表,只返回第一个结果

时间:2014-03-09 22:37:28

标签: linux grep xargs

我有一个文件(biglist.txt),我需要搜索包含两个字符串的行,我需要输出只返回该搜索的第一个实例。字符串一(两个)是可变的,这意味着我有一个文件是另一个长行分隔(硬返回)的不同字符串列表(queries.txt)。第二个字符串将是一个常量字(让我们称之为"描述")。我需要搜索带有变量string + constant string的行,并且只返回这种搜索的第一个实例。

我知道这样的东西适用于单个字符串列表。

cat queries.txt | xargs -I{} grep -m 1 {} biglist.txt > output

但是我需要添加一个参数,即queries.txt中的每个字符串也必须在一行中包含常量字" description"。文件" biglist.txt"每个字符串和单词"描述"有多行。我只需要输出其中一个。并非所有的行都包含字符串和单词" description"并且通常第一行没有单词" description"。这个新手感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果没有对输入和预期输出的更好描述,这可能会起到作用:

grep description biglist.txt | grep -f queries.txt | head -n1

输出biglist.txt中的第一行,其中包含description和query.txt中的一个查询。

相关问题