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

Bash 如何将函数的多行输出传递给grep?,bash,unix,command-line,aix,Bash,Unix,Command Line,Aix,我是UNIX新手,对一个可能非常简单的概念有困难。我想获取一个awk的输出,该输出用于返回一列数据(在本例中,它是包含FC WWN的几行数据),并将其用作grep中的搜索参数,就像使用包含该列的文件一样 我的第一个想法是简单地打字 grep-f awk{'print$3'}myfile myotherfile 显然,这不起作用。我知道我可以用两个命令和一个中间文件(用>将我的awk输出到一个新文件,并使用grep-f),但是我想知道是否有一种方法可以做到这一点而不添加文件 背景:我正在使用AIX

我是UNIX新手,对一个可能非常简单的概念有困难。我想获取一个awk的输出,该输出用于返回一列数据(在本例中,它是包含FC WWN的几行数据),并将其用作grep中的搜索参数,就像使用包含该列的文件一样

我的第一个想法是简单地打字 grep-f awk{'print$3'}myfile myotherfile

显然,这不起作用。我知道我可以用两个命令和一个中间文件(用>将我的awk输出到一个新文件,并使用grep-f),但是我想知道是否有一种方法可以做到这一点而不添加文件


背景:我正在使用AIX5.3和bash

一个与GNU grep一起使用的常见习惯用法(不知道AIXgrep)是使用
-
作为stdin的规范。因此,在您的情况下,如果我正确解释了命令,您将使用:


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

您可以使用漂亮的
$我尝试了一下,发现了一个“grep:0652-033无法打开-”错误。这个原则叫什么,所以我可以查看AIX手册,看看他们是否只是更改了使用的字符或其他什么?我不认为它叫什么。GNU grep
man
info
页面中甚至没有提到它。这只是很多程序支持的东西,所以我想我应该试试。您可能可以用命名管道来实现这一点,但在这种情况下,它与在中间输出文件基本相同。
fgrep -f <(awk '{print $3}' myfile) myotherfile