如何将函数的多行输出传递给grep?

时间:2011-09-27 17:52:41

标签: bash unix command-line aix

我是UNIX新手,可能是一个非常简单的概念。我想把awk的输出设计为返回单列数据(在这种情况下,它是包含FC WWN的几行)并将其用作grep中的搜索参数,就像我使用文件一样包含该列。

我的第一个念头就是打字     grep -f awk {'print $ 3'} myfile myotherfile

显然,这不起作用。我知道我可以简单地用两个命令和一个中间文件(用一个>输出我的awk到一个新文件,并用它来使用grep -f)来做这个,但我想知道是否有办法做这没有添加文件。

背景:我正在使用AIX 5.3和bash

2 个答案:

答案 0 :(得分:1)

似乎与GNU grep一起使用的常见习惯用法(不了解AIX grep)是使用-作为stdin的规范。所以在你的情况下,如果我正确解释了命令,你可以使用:

awk {'print $3'} myfile | grep -f - myotherfile

答案 1 :(得分:1)

您可以使用bash的漂亮$< bash 成语来将文件名参数替换为指定命令的输出。

fgrep -f <(awk '{print $3}' myfile) myotherfile