【发布时间】:2020-02-23 19:15:27
【问题描述】:
tail -f myfile.log
非常好,但如果您有一个大文件,您可能只想显示每 n 行。
所以输出将显示第 1 行、第 1001 行、第 2001 行等等。
这是可能的还是需要将输出链接到sed、awk 或其他东西?
【问题讨论】:
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 -w 10000 | awk 'NR%1000==1' ?
你可以使用下面的命令来获取它
$> 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【讨论】: