我想从一个如下所示的文件开始:
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
仅返回每组五个中的最后三个,如下所示:
3
4
5
3
4
5
3
4
5
我已经成功使用如下代码获得了前 2 个:
awk -vn=2 -vm=5 'NR<=i{next}; (NR-i)%m==1{c=1}; c++<=n
但我在对最后一个分组做同样的事情时遇到了麻烦。
答案1
使用模运算这些事情通常更容易,例如
awk '(NR-2)%5 && (NR-1)%5' file
3
4
5
3
4
5
3
4
5
或者,使用 GNU sed 的n~m
(“n 跳过 m”)表示法:
sed '1~5d;2~5d' file