tail -f,但仅每第 1000 行
tail -f, but only every 1000th row
tail -f myfile.log
非常好,但是如果您有一个大文件,您可能只想显示 每第 n 行 。
因此输出将显示第 1 行、第 1001 行、第 2001 行等。
这可能吗?输出是否需要链接到 sed
、awk
或其他内容?
使用 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
tail -f myfile.log
非常好,但是如果您有一个大文件,您可能只想显示 每第 n 行 。
因此输出将显示第 1 行、第 1001 行、第 2001 行等。
这可能吗?输出是否需要链接到 sed
、awk
或其他内容?
使用 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