从命令每第n行打印一次

问题描述 投票:0回答:1

我在CI环境中有一条命令,该命令将价值数兆字节的日志消息吐出到stdout。达到限制日志大小后,命令将中止。无法提高日志大小限制并减少命令的输出。

我如何仅打印命令生成的stdout输出的每第5行打印?对于文件,我用awksed找到了很多答案,但对于命令来说却没有用。

因为我不想在CI流程中看到将日志记录到文件然后在以后打印输出的进度。

bash awk sed
1个回答
0
投票

尝试

<command> | awk 'NR%5==0{print} 

演示:

$seq 100 | awk 'NR%5==0{print}'  
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100
$
© www.soinside.com 2019 - 2024. All rights reserved.