如何使用 grep 和匹配的 stdout 来列出文件中的值?

如何使用 grep 和匹配的 stdout 来列出文件中的值?

我有一个包含项目列表的文件,每个项目都位于单独的行上。

Apigee API,
BigQuery API,
Cloud Build API

我正在使用 gcloud 命令列出gcloud services list --available终端的服务,输出类似于

bigquery.googleapis.com BigQuery API

我希望运行 gcloud 命令,然后对上面列表中的每个项目运行 grep 并将关联的内容输出*.googleapis.com到一个新文件中,但我在使用 grep 命令时遇到了一些问题。

我已经尝试过诸如此类的操作,gcloud services list --available | grep -F -f list.txt associatedfile.txt但在 中没有看到任何输出associatedfile.txt

答案1

如果您的管道是

gcloud services list --available | grep -F -f list.txt associatedfile.txt

然后将从 中读取并过滤文本,而不是从 的输出中grep读取和过滤文本。如果在命令行上给定一个或多个路径名作为操作数,该实用程序将不会读取其标准输入流。associatedfile.txtgcloudgrep

gcloud要过滤的输出grep并将结果输出写入associatedfile.txt,请使用重定向:

gcloud services list --available | grep -F -f list.txt >associatedfile.txt

另请注意,如果每行末尾的逗号不是实际搜索词的一部分,则必须删除这些逗号。

相关内容