Mat*_*ing 4 pipe sed shell-script
由于某种原因,当将 SSH 的命令输出通过管道传输到 sed 时,我不会有实时输出:
ssh someuser@somehost 2>&1 | sed -e "s/\[32//g" | tee logging
Run Code Online (Sandbox Code Playgroud)
我怀疑输出 dit 没有换行符,但是当我删除 sed 命令并运行时:
wc -l logging
Run Code Online (Sandbox Code Playgroud)
它返回 6,这是正确的返回数。有人知道我在这里缺少什么吗?
[编辑]我完全忘记提及以下内容:运行
ssh someuser@somehost 2>&1 | sed -e "s/\[32//g"
Run Code Online (Sandbox Code Playgroud)
返回所有值没有问题,但是,一旦我将 tee 添加到混合中,我将无法获得输出,直到我点击 ^C...甚至标准输出重定向都不起作用(ssh someuser@somehost 2>&1 | sed -e “s/[32//g”> 文件)。只需 ssh 和 tee 也可以正常工作。
小智 7
流编辑器、sed、缓冲区,通过“-u”或“--unbuffered”禁用。
tail -f some/log_file | sed -u 's/foo//g' | grep bar
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4318 次 |
最近记录: |