awk处理案例九--输出取余某特定几行


【场景】

   在一个大文件中(上千行数据);取NR%126的值为1-8,76的行。看有没有很好的写法

 【实现】

[li0924@localhost lottu]$ seq 300|awk '{A=NR%126;if(A>=1&&A<=8||A==76)print}'
1
2
3
4
5
6
7
8
76
127
128
129
130
131
132
133
134
202
253
254
255
256
257
258
259
260

还有seesea兄的巧妙的思路,利用数组的值;代码如下:

awk 'BEGIN{for(i=1;i<=8;++i) ar[i]=1; ar[76] = 1;} (NR%126 in ar)'

awk 'BEGIN{for(i=1;i<=8;++i) ar[i]=1; ar[76] = 1;} ar[NR%126]'  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM