【发布时间】:2011-07-25 21:26:53
【问题描述】:
我想在 c 中实现多管道,所以我可以这样做,其中||| 表示将标准输入复制到 N 管道命令):
cat /tmp/test.log ||| wc -l ||| grep test1 ||| grep test2 | grep test3
这将返回给我文件中的行数和文件中包含'test1'字符串的行和文件中包含'的行test2' && 'test3' 字符串
换句话说,这将具有这 3 个常规管道的效果:
cat /tmp/test.log | wc -l --> stdout
| grep test1 --> stdout
| grep test2 | grep test3 --> stdout
有人已经实现了这样的东西吗?我什么都没找到... 注意:我知道它可以使用脚本语言或 bash 多个文件描述符来完成,但我正在搜索 C 代码来完成它。
谢谢!
【问题讨论】:
-
请注意,'||'运算符在 shell 中表示“逻辑或”,即 false || echo hi 结果为“hi”。
-
你所追求的类似于this question;那里的答案应该对你有用。