linux - BASH - tr grep 结果换行

标签 linux bash shell grep tr

我在 wget 之后有一个 grep -o '100%' 管道,所以我只收到 wget 完成下载的通知, 屏幕上没有无用的信息。但是每个 100% 都打印在一个新行上,我不喜欢这种泛滥!那么,有没有办法通过在 grep 之后管道 tr 将换行符 tr 到空格?我得到的只是没有结果,每次我尝试...

最佳答案

你最终会得到输出,但一次完成。这是由于缓冲。

GNU grep 有一个 --line-buffered 来避免输出缓冲。 tr 没有明显的方法来关闭输入缓冲,因此您可以改用 awk:

wget -r -l 1 http://stackoverflow.com/ 2>&1 |
    grep --line-buffered -o '100%' | awk '{printf("%s ", $0);}'
100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 

关于linux - BASH - tr grep 结果换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38860821/

相关文章:

linux - BogoMips 是如何在 linux 内核中计算的?

linux - 更改文件 linux 中的日期格式

arrays - bash 中数组元素的算术运算

wordpress - 如何在当前目录中提取 .tar.gz? (没有子文件夹)

bash - Ansible:强制管道失败

python - 运行 ./file.py 和 python file.py 有什么区别?

linux - 运行从 stdin 管道传输的脚本(Linux/Shell 脚本)

python - 从多个文本文件中删除段落

linux - "awk"未按预期处理 shell 变量

python - 如何编写 IPython shell 的包装器?