【发布时间】:2019-12-24 23:51:55
【问题描述】:
我想给 awk 两个输入文件,它们都包含标准输入的内容。当我尝试这样做时,发生了奇怪的事情。所以我通过在标准输入上回显一些输入来模拟实验,结果也没有按预期工作。
echo 88 | awk '1' - -
88
echo 88 | tee outfile | awk '1' - -
还是给88。
echo 88 | tee outfile | awk '1' - outfile
正确打印 88 两次
但是 T 恤应该是不必要的,不是吗?
【问题讨论】:
-
为什么不
echo 88 | awk '{print $0,$0}'简单呢? -
寻找解释为什么第一个例子不起作用。它应该给 awk 两行输入,但只有一个输出。
-
破折号 (
-) 表示stdin流已被消耗,因此当您第二次访问它时,其中将没有任何内容。或者您是否希望在阅读时不会得到所有stdin? -
请注意,将 - 替换为 /dev/stdin 仍然不起作用。这也是你所期望的吗?
-
你不能两次从同一条河里喝水。