获取grep搜索的结果并使用它来搜索另一个文件。 linux bash脚本

时间:2014-05-21 03:34:14

标签: linux bash

我正在尝试在文件dep / playlist中搜索' ohn'。然后,我想将此结果应用于一个新的grep命令,该命令搜索文件员工列表结束,然后在屏幕上回显结果。下面的代码没有按预期运行。

grep ohn dep/playlist > search
grep $(cat search) employeelist > newlist
cat newlist

谢谢,

2 个答案:

答案 0 :(得分:4)

您需要告诉grep从文件中获取模式,使用-f选项:

   -f FILE, --file=FILE
          Obtain  patterns  from  FILE,  one  per  line.   The  empty file
          contains zero patterns, and therefore matches nothing.   (-f  is
          specified by POSIX.)

所以命令看起来像:

grep -f search employeelist > newlist

使用进程替换可以避免使用临时文件。因此,两个grep命令可以写成一个:

grep -f <(grep ohn dep/playlist) employeelist > newlist

答案 1 :(得分:0)

xargs

grep ohn dep/playlist | xargs -I name grep name employeelist

这会在dep/playlist中搜索“ohn”,然后在找到结果后,会在grep X employeelist中使用该结果,其中X是第一个grep的结果。