tail -f,但仅每第 1000 行

tail -f, but only every 1000th row

tail -f myfile.log

非常好,但是如果您有一个大文件,您可能只想显示 每第 n 行

因此输出将显示第 1 行、第 1001 行、第 2001 行等。

这可能吗?输出是否需要链接到 sedawk 或其他内容?

使用 awk:

$ awk 'NR%1000==1'

每 3 次采样:

$ seq 1 10 | awk 'NR%3==1'
1
4
7
10

你可以使用下面的命令来获取它

$> seq 1 4000 | awk 'NR%1000-1==0' # or awk 'NR%1000==1'
1
1001
2001
3001

$> seq 1 4000  >> file
$> cat file |   awk 'NR%1000-1==0'
1
1001
2001
3001

$> tail -f -n 40000 file  | awk 'NR%1000-1==0'                                                                                                                                                  (2.6.3)
1
1001
2001
3001

使用 GNU sed:

seq 1 4000 | sed -nu '1~1000p'

输出:

1
1001
2001
3001