gpt4 book ai didi

命令参数的 Unix 管道

转载 作者:行者123 更新时间:2023-12-04 21:53:13 32 4
gpt4 key购买 nike

我正在寻找有关如何使用管道将标准输出作为其他命令的参数传递的见解。

例如,考虑这种情况:

ls | grep Hello

grep 的结构遵循以下模式: grep SearchTerm PathOfFileToBeSearched .在我举例说明的情况下,Hello 一词被视为 SearchTerm并且 ls 的结果用作要搜索的文件。但是如果我想切换它呢?如果我希望 ls 的标准输出是 SearchTerm,grep 后面的参数是 PathOfFileToBeSearched 怎么办? ?一般来说,我想控制管道用前一个命令的标准输出填充哪个参数。这是可能的,还是取决于命令的脚本(例如, grep )是如何编写的?

非常感谢你的帮助!

最佳答案

grep本身将被构建,如果您没有指定文件名,它将打开标准输入(从而获得 ls 的输出)。这里没有真正的通用机制——只是约定。

如果你想要 ls 的输出要成为搜索词,您可以通过 shell 执行此操作。使用子shell和substitution因此:

$ grep $(ls) filename.txt

在这种情况下 ls在子shell中运行,它的标准输出被捕获并作为 grep的参数插入到命令行中。 .注意,如果 ls输出包含空格,这会导致 grep 的混淆.

关于命令参数的 Unix 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14383534/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com