“progress tee”是一个增强的“tee”程序,它就地覆盖“status”。
ptee的Python项目详细描述
简介
ptee (用于"progress tee")是一个基于 标准unix tee 命令提供的功能。它接受线条 来自正在运行的命令的文本(例如调用 make )并显示 将它们发送到控制台,以便覆盖连续的不太重要的行 到位,提供有关整体运营进度的反馈 不允许更重要的行(例如编译器警告和错误) 卷走被忽略。此外,与标准的T形三通一样, 可以选择将来自stdin的文本逐字写入一个或多个输出 文件,
这些不太重要的行称为"上下文"行,因为它们提供上下文 通向重要的线;更重要的线叫做"常规线" 线.每个新上下文将覆盖 控制台,形成一个"状态"行,在不滚动的情况下保持不变。当A 出现常规行,组成状态行的文本保持不变(即滚动 向上)为常规文本提供上下文。
例如,假设调用 make 生成以下输出:
$ make gcc -c -Wall -W -o file1.o file1.c gcc -c -Wall -W -o file2.o file2.c file2.c:1:12: warning: ‘x’ defined but not used [-Wunused-variable] gcc -c -Wall -W -o file3.o file3.c gcc -c -Wall -W -o file4.o file4.c gcc -c -Wall -W -o file5.o file5.c gcc -o app file1.o file2.o file3.o file4.o file5.o
编译器调用行( gcc -c .. )在 下一行显示,除非有与之相关的警告或错误 召唤。使用 ptee ,您可以提供一个正则表达式来匹配这些 允许它们在控制台上相互覆盖的"上下文"行。行不 匹配正则表达式将显示在它们自己的行上(沿 上一个上下文行(如果有的话)。在上面的示例中,输出将 最终看起来是这样的:
$ make 2>&1 | ptee --regex '^gcc' gcc -c -Wall -W -o file2.o file2.c file2.c:1:12: warning: ‘x’ defined but not used [-Wunused-variable]
上述调用中的 2>;&;1 将stderr重定向到与 stdout,这样stdout和stderr都被导入 ptee 。这是必须的 因为gcc的诊断消息默认会转到stderr。
在运行 make 期间,每行状态都将写入 前一行状态,在保持 从屏幕上滚动太远而产生的有趣的线条。