【发布时间】:2010-11-01 14:58:15
【问题描述】:
我正在使用“tail -f”来跟踪更新的日志文件;接下来,我将其输出传递给 grep 以仅显示包含搜索词的行(在本例中为“org.springframework”);最后我想做的是将 grep 的输出通过管道传输到第三个命令“cut”:
tail -f logfile | grep org.springframework | cut -c 25-
cut 命令将为我删除每行的前 25 个字符如果它可以从 grep 获取输入!(如果我从链中删除 'grep',它会按预期工作。)
我在 bash 中使用 cygwin。
实际结果:当我添加第二个管道以连接到 'cut' 命令时,结果是它挂起,好像它在等待输入(以防您想知道)。
【问题讨论】:
-
如果我在 grep 之后停止(没有“切割”的管道),它可以工作(不删除前 24 或 25 个字符)。
-
这里真正的问题是,
tail -f永远不会完成,所以管道的其余部分一直在等待更多输入